oh-my-opencode 4.7.5 → 4.8.1

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 (617) hide show
  1. package/.agents/command/get-unpublished-changes.md +35 -6
  2. package/.agents/command/omomomo.md +1 -1
  3. package/.agents/command/publish.md +13 -0
  4. package/.agents/command/security-research.md +0 -1
  5. package/.agents/skills/get-unpublished-changes/SKILL.md +21 -5
  6. package/.agents/skills/omomomo/SKILL.md +1 -2
  7. package/.agents/skills/opencode-qa/scripts/export-roundtrip.sh +57 -19
  8. package/.agents/skills/opencode-qa/scripts/lib/common.sh +19 -7
  9. package/.agents/skills/opencode-qa/scripts/sse-hook-probe.sh +3 -0
  10. package/.agents/skills/opencode-qa/scripts/tui-smoke.sh +1 -1
  11. package/.agents/skills/pre-publish-review/SKILL.md +24 -4
  12. package/.agents/skills/publish/SKILL.md +13 -0
  13. package/.agents/skills/remove-deadcode/SKILL.md +0 -1
  14. package/.agents/skills/security-research/SKILL.md +0 -1
  15. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +1 -1
  16. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +2 -2
  17. package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +1 -1
  18. package/.opencode/command/get-unpublished-changes.md +35 -6
  19. package/.opencode/command/omomomo.md +1 -1
  20. package/.opencode/command/publish.md +13 -0
  21. package/.opencode/command/security-research.md +0 -1
  22. package/.opencode/skills/pre-publish-review/SKILL.md +24 -4
  23. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +1 -1
  24. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +2 -2
  25. package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +1 -1
  26. package/README.ja.md +7 -7
  27. package/README.ko.md +9 -7
  28. package/README.md +14 -8
  29. package/README.ru.md +5 -5
  30. package/README.zh-cn.md +7 -7
  31. package/bin/oh-my-opencode.js +24 -1
  32. package/bin/oh-my-opencode.test.ts +79 -20
  33. package/dist/agents/hephaestus/agent.d.ts +1 -1
  34. package/dist/agents/kimi-tool-loop-guard.d.ts +1 -0
  35. package/dist/agents/momus.d.ts +1 -1
  36. package/dist/agents/sisyphus-agent-config.d.ts +4 -0
  37. package/dist/agents/sisyphus-agent-factory.d.ts +6 -0
  38. package/dist/agents/sisyphus-dynamic-prompt-builder.d.ts +2 -0
  39. package/dist/agents/sisyphus-dynamic-prompt-execution.d.ts +2 -0
  40. package/dist/agents/sisyphus-dynamic-prompt-exploration.d.ts +2 -0
  41. package/dist/agents/sisyphus-dynamic-prompt-role.d.ts +2 -0
  42. package/dist/agents/sisyphus-dynamic-prompt-sections.d.ts +18 -0
  43. package/dist/agents/sisyphus-dynamic-prompt-style.d.ts +2 -0
  44. package/dist/agents/sisyphus-dynamic-prompt.d.ts +3 -0
  45. package/dist/agents/sisyphus-gemini-fallback-overrides.d.ts +1 -0
  46. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  47. package/dist/agents/sisyphus-junior/index.d.ts +0 -1
  48. package/dist/agents/sisyphus.d.ts +1 -6
  49. package/dist/agents/types.d.ts +14 -3
  50. package/dist/cli/cli-program.d.ts +3 -0
  51. package/dist/cli/doctor/checks/codex.d.ts +11 -0
  52. package/dist/cli/doctor/checks/dependencies.d.ts +1 -0
  53. package/dist/cli/doctor/checks/index.d.ts +3 -0
  54. package/dist/cli/doctor/checks/system.d.ts +4 -0
  55. package/dist/cli/doctor/constants.d.ts +1 -0
  56. package/dist/cli/doctor/doctor-target.d.ts +2 -0
  57. package/dist/cli/doctor/index.d.ts +1 -0
  58. package/dist/cli/doctor/types.d.ts +26 -0
  59. package/dist/cli/index.js +4466 -2212
  60. package/dist/cli/install-codex/codex-cache-bins.d.ts +21 -0
  61. package/dist/cli/install-codex/codex-cache-fs.d.ts +3 -0
  62. package/dist/cli/install-codex/codex-cache-install.d.ts +13 -0
  63. package/dist/cli/install-codex/codex-cache-mcp-manifest.d.ts +2 -0
  64. package/dist/cli/install-codex/codex-cache-prune.d.ts +10 -0
  65. package/dist/cli/install-codex/codex-cache.d.ts +4 -32
  66. package/dist/cli/install-codex/codex-cached-marketplace-manifest.d.ts +6 -0
  67. package/dist/cli/install-codex/codex-config-agents.d.ts +3 -0
  68. package/dist/cli/install-codex/codex-config-features.d.ts +1 -0
  69. package/dist/cli/install-codex/codex-config-marketplaces.d.ts +6 -0
  70. package/dist/cli/install-codex/codex-config-plugins.d.ts +8 -0
  71. package/dist/cli/install-codex/codex-config-toml-sections.d.ts +9 -0
  72. package/dist/cli/install-codex/codex-multi-agent-v2-config.d.ts +11 -0
  73. package/dist/cli/install-codex/codex-process.d.ts +5 -0
  74. package/dist/cli/install-codex/index.d.ts +1 -1
  75. package/dist/cli/install-codex/lazycodex-version-stamp.d.ts +19 -0
  76. package/dist/cli/install-codex/link-cached-plugin-agents.d.ts +4 -0
  77. package/dist/cli/install-validators.d.ts +3 -0
  78. package/dist/cli/model-fallback-types.d.ts +3 -0
  79. package/dist/cli/run/event-handlers.d.ts +4 -11
  80. package/dist/cli/run/event-message-handlers.d.ts +5 -0
  81. package/dist/cli/run/event-session-handlers.d.ts +5 -0
  82. package/dist/cli/run/event-session-ids.d.ts +24 -0
  83. package/dist/cli/run/event-think-block.d.ts +3 -0
  84. package/dist/cli/run/event-toast-handlers.d.ts +3 -0
  85. package/dist/cli/run/event-tool-handlers.d.ts +4 -0
  86. package/dist/cli/run/event-tool-output.d.ts +2 -0
  87. package/dist/cli/run/on-complete-hook.d.ts +8 -1
  88. package/dist/cli/run/opencode-binary-resolver.d.ts +2 -1
  89. package/dist/cli/run/runnable-agent-resolver.d.ts +11 -0
  90. package/dist/cli/runtime-commands.d.ts +2 -0
  91. package/dist/cli/sparkshell-appserver-websocket.d.ts +4 -0
  92. package/dist/cli/sparkshell-appserver.d.ts +16 -0
  93. package/dist/cli/sparkshell-parse.d.ts +21 -0
  94. package/dist/cli/sparkshell.d.ts +26 -0
  95. package/dist/cli/types.d.ts +9 -0
  96. package/dist/config/schema/claude-code.d.ts +1 -0
  97. package/dist/config/schema/hooks.d.ts +1 -0
  98. package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
  99. package/dist/create-hooks.d.ts +1 -0
  100. package/dist/features/background-agent/concurrency.d.ts +6 -1
  101. package/dist/features/background-agent/constants.d.ts +1 -0
  102. package/dist/features/background-agent/empty-assistant-turn.d.ts +7 -0
  103. package/dist/features/background-agent/manager.d.ts +12 -0
  104. package/dist/features/background-agent/message-updated-parent-wake-output.d.ts +1 -0
  105. package/dist/features/background-agent/parent-wake-dedupe.d.ts +2 -0
  106. package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +21 -0
  107. package/dist/features/background-agent/parent-wake-flush-runner.d.ts +24 -0
  108. package/dist/features/background-agent/parent-wake-history-state.d.ts +5 -0
  109. package/dist/features/background-agent/parent-wake-notifier-types.d.ts +50 -0
  110. package/dist/features/background-agent/parent-wake-notifier.d.ts +8 -50
  111. package/dist/features/background-agent/parent-wake-pending-queue.d.ts +22 -0
  112. package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +19 -0
  113. package/dist/features/background-agent/parent-wake-session-history.d.ts +73 -0
  114. package/dist/features/background-agent/parent-wake-session-inspector.d.ts +35 -0
  115. package/dist/features/background-agent/parent-wake-timer-handle.d.ts +5 -0
  116. package/dist/features/background-agent/parent-wake-window-recovery.d.ts +13 -0
  117. package/dist/features/background-agent/process-cleanup.d.ts +2 -0
  118. package/dist/features/background-agent/process-cleanup.test-helpers.d.ts +3 -0
  119. package/dist/features/background-agent/session-stream-activity.d.ts +6 -0
  120. package/dist/features/background-agent/spawner/fallback-agent.d.ts +5 -0
  121. package/dist/features/background-agent/spawner/task-prompt-body.d.ts +34 -0
  122. package/dist/features/background-agent/spawner/task-record.d.ts +2 -0
  123. package/dist/features/background-agent/spawner.d.ts +2 -5
  124. package/dist/features/builtin-commands/templates/refactor-sections/codemap-and-tests.d.ts +1 -0
  125. package/dist/features/builtin-commands/templates/refactor-sections/intro-and-analysis.d.ts +1 -0
  126. package/dist/features/builtin-commands/templates/refactor-sections/plan-and-execution.d.ts +1 -0
  127. package/dist/features/builtin-commands/templates/refactor-sections/team-mode-addendum.d.ts +1 -0
  128. package/dist/features/builtin-commands/templates/refactor-sections/verification-and-tooling.d.ts +1 -0
  129. package/dist/features/builtin-commands/templates/refactor.d.ts +2 -2
  130. package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +2 -0
  131. package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +2 -0
  132. package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +1 -0
  133. package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +1 -0
  134. package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +1 -0
  135. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -1
  136. package/dist/features/builtin-skills/skills/index.d.ts +1 -0
  137. package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +2 -0
  138. package/dist/features/builtin-skills/skills/playwright.d.ts +2 -3
  139. package/dist/features/builtin-skills/skills/visual-qa.d.ts +2 -0
  140. package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +2 -2
  141. package/dist/features/claude-code-agent-loader/claude-model-mapper.d.ts +1 -1
  142. package/dist/features/claude-code-agent-loader/loader.d.ts +2 -2
  143. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +1 -1
  144. package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +2 -0
  145. package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +3 -0
  146. package/dist/features/claude-code-plugin-loader/discovery.d.ts +3 -4
  147. package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +1 -0
  148. package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +3 -0
  149. package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +2 -0
  150. package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +1 -0
  151. package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +4 -0
  152. package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +3 -0
  153. package/dist/features/claude-code-plugin-loader/types.d.ts +1 -0
  154. package/dist/features/hook-message-injector/context-resolver.d.ts +6 -0
  155. package/dist/features/hook-message-injector/id-generation.d.ts +2 -0
  156. package/dist/features/hook-message-injector/index.d.ts +1 -1
  157. package/dist/features/hook-message-injector/injector.d.ts +7 -69
  158. package/dist/features/hook-message-injector/json-message-lookup.d.ts +3 -0
  159. package/dist/features/hook-message-injector/message-directory.d.ts +1 -0
  160. package/dist/features/hook-message-injector/message-injection.d.ts +2 -0
  161. package/dist/features/hook-message-injector/sdk-message-context.d.ts +6 -0
  162. package/dist/features/hook-message-injector/sdk-message-lookup.d.ts +28 -0
  163. package/dist/features/hook-message-injector/types.d.ts +9 -0
  164. package/dist/features/mcp-oauth/callback-server.d.ts +10 -2
  165. package/dist/features/opencode-runtime-skills/source-server.d.ts +1 -0
  166. package/dist/features/skill-mcp-manager/http-client.d.ts +2 -0
  167. package/dist/features/team-mode/deps.d.ts +8 -1
  168. package/dist/features/team-mode/team-layout-tmux/layout.d.ts +2 -0
  169. package/dist/features/team-mode/team-mailbox/send.d.ts +3 -0
  170. package/dist/features/team-mode/team-registry/paths.d.ts +17 -2
  171. package/dist/features/team-mode/team-runtime/shutdown.d.ts +1 -1
  172. package/dist/features/team-mode/team-runtime/unresolved-team-members.d.ts +3 -0
  173. package/dist/features/team-mode/team-state-store/active-resume.d.ts +5 -0
  174. package/dist/features/team-mode/team-state-store/creating-resume.d.ts +4 -0
  175. package/dist/features/team-mode/team-state-store/deleting-resume.d.ts +4 -0
  176. package/dist/features/team-mode/team-state-store/error-normalization.d.ts +2 -0
  177. package/dist/features/team-mode/team-state-store/reservation-reconciliation.d.ts +4 -0
  178. package/dist/features/team-mode/team-state-store/resume-report.d.ts +7 -0
  179. package/dist/features/team-mode/team-state-store/resume.d.ts +2 -7
  180. package/dist/features/team-mode/team-state-store/runtime-cleanup.d.ts +4 -0
  181. package/dist/features/team-mode/team-state-store/session-liveness.d.ts +9 -0
  182. package/dist/features/team-mode/team-state-store/worker-resume-status.d.ts +9 -0
  183. package/dist/features/team-mode/tools/lifecycle-create-tool.d.ts +17 -0
  184. package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +19 -0
  185. package/dist/features/team-mode/tools/lifecycle-participant.d.ts +25 -0
  186. package/dist/features/team-mode/tools/lifecycle-shutdown-tools.d.ts +18 -0
  187. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +3 -3
  188. package/dist/features/team-mode/tools/lifecycle.d.ts +3 -37
  189. package/dist/features/team-mode/tools/messaging-live-delivery-client.d.ts +25 -0
  190. package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +19 -0
  191. package/dist/features/team-mode/tools/messaging-live-delivery-reservation.d.ts +10 -0
  192. package/dist/features/team-mode/tools/messaging-live-delivery-state.d.ts +5 -0
  193. package/dist/features/team-mode/tools/messaging-live-delivery.d.ts +6 -0
  194. package/dist/features/team-mode/tools/messaging-runtime.d.ts +17 -0
  195. package/dist/features/team-mode/tools/messaging.d.ts +4 -29
  196. package/dist/features/tmux-subagent/manager.d.ts +20 -1
  197. package/dist/features/tmux-subagent/session-created-handler.d.ts +4 -0
  198. package/dist/features/tmux-subagent/types.d.ts +1 -0
  199. package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +1 -1
  200. package/dist/hooks/atlas/idle-completion-nudge.d.ts +10 -0
  201. package/dist/hooks/atlas/idle-constants.d.ts +4 -0
  202. package/dist/hooks/atlas/idle-continuation.d.ts +23 -0
  203. package/dist/hooks/atlas/idle-session-eligibility.d.ts +8 -0
  204. package/dist/hooks/atlas/tool-execute-after-direct-work.d.ts +9 -0
  205. package/dist/hooks/atlas/tool-execute-after-plan-tasks.d.ts +3 -0
  206. package/dist/hooks/atlas/tool-execute-after-subagent-completion.d.ts +14 -0
  207. package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +6 -0
  208. package/dist/hooks/auto-update-checker/hook/ignore-toast-error.d.ts +1 -0
  209. package/dist/hooks/hephaestus-agents-md-injector/hook.d.ts +37 -0
  210. package/dist/hooks/hephaestus-agents-md-injector/index.d.ts +1 -0
  211. package/dist/hooks/index.d.ts +1 -0
  212. package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
  213. package/dist/hooks/ralph-loop/command-arguments.d.ts +1 -0
  214. package/dist/hooks/ralph-loop/event-handler-activity.d.ts +10 -0
  215. package/dist/hooks/ralph-loop/event-handler-completion.d.ts +9 -0
  216. package/dist/hooks/ralph-loop/event-handler-continuation.d.ts +16 -0
  217. package/dist/hooks/ralph-loop/event-handler-feedback.d.ts +16 -0
  218. package/dist/hooks/ralph-loop/event-handler-idle.d.ts +15 -0
  219. package/dist/hooks/ralph-loop/event-handler-impl.d.ts +10 -0
  220. package/dist/hooks/ralph-loop/event-handler-runtime-error.d.ts +4 -0
  221. package/dist/hooks/ralph-loop/event-handler-types.d.ts +20 -0
  222. package/dist/hooks/ralph-loop/loop-state-controller.d.ts +1 -0
  223. package/dist/hooks/ralph-loop/ralph-loop-event-handler.d.ts +4 -24
  224. package/dist/hooks/ralph-loop/ralph-loop-hook.d.ts +1 -0
  225. package/dist/hooks/read-image-resizer/png-chunks.d.ts +6 -0
  226. package/dist/hooks/read-image-resizer/png-constants.d.ts +1 -0
  227. package/dist/hooks/read-image-resizer/png-crc.d.ts +1 -0
  228. package/dist/hooks/read-image-resizer/png-decoder.d.ts +1 -0
  229. package/dist/hooks/read-image-resizer/png-encoder.d.ts +1 -0
  230. package/dist/hooks/read-image-resizer/png-filters.d.ts +1 -0
  231. package/dist/hooks/read-image-resizer/png-ihdr.d.ts +11 -0
  232. package/dist/hooks/read-image-resizer/png-nearest-neighbor.d.ts +1 -0
  233. package/dist/hooks/rules-injector/injection-output.d.ts +2 -0
  234. package/dist/hooks/rules-injector/injection-processor.d.ts +22 -0
  235. package/dist/hooks/rules-injector/injection-types.d.ts +43 -0
  236. package/dist/hooks/rules-injector/injector.d.ts +3 -47
  237. package/dist/hooks/rules-injector/match-decision-cache.d.ts +4 -0
  238. package/dist/hooks/rules-injector/parsed-rule-cache.d.ts +11 -0
  239. package/dist/hooks/rules-injector/path-resolution.d.ts +1 -0
  240. package/dist/hooks/rules-injector/rule-match-reason.d.ts +12 -0
  241. package/dist/hooks/rules-injector/transcript-hydration.d.ts +13 -2
  242. package/dist/hooks/runtime-fallback/auto-retry-abort.d.ts +2 -0
  243. package/dist/hooks/runtime-fallback/auto-retry-agent-context.d.ts +2 -0
  244. package/dist/hooks/runtime-fallback/auto-retry-cleanup.d.ts +2 -0
  245. package/dist/hooks/runtime-fallback/auto-retry-dispatch.d.ts +2 -0
  246. package/dist/hooks/runtime-fallback/auto-retry-metadata.d.ts +9 -0
  247. package/dist/hooks/runtime-fallback/auto-retry-timeout.d.ts +5 -0
  248. package/dist/hooks/runtime-fallback/fallback-bootstrap-model.d.ts +1 -1
  249. package/dist/hooks/runtime-fallback/fallback-state.d.ts +4 -1
  250. package/dist/hooks/runtime-fallback/normalize-model.d.ts +12 -0
  251. package/dist/hooks/session-notification-linux.d.ts +3 -0
  252. package/dist/hooks/session-notification-log.d.ts +2 -0
  253. package/dist/hooks/session-notification-macos.d.ts +3 -0
  254. package/dist/hooks/session-notification-platform.d.ts +3 -0
  255. package/dist/hooks/session-notification-runner.d.ts +9 -0
  256. package/dist/hooks/session-notification-send.d.ts +3 -0
  257. package/dist/hooks/session-notification-sender.d.ts +5 -6
  258. package/dist/hooks/session-notification-sound.d.ts +3 -0
  259. package/dist/hooks/session-notification-windows.d.ts +3 -0
  260. package/dist/hooks/session-recovery/error-recovery.d.ts +4 -0
  261. package/dist/hooks/session-recovery/hook-types.d.ts +22 -0
  262. package/dist/hooks/session-recovery/hook.d.ts +2 -19
  263. package/dist/hooks/session-recovery/interrupted-tool-results.d.ts +3 -0
  264. package/dist/hooks/session-recovery/message-state.d.ts +4 -0
  265. package/dist/hooks/session-recovery/storage/thinking-strip.d.ts +7 -1
  266. package/dist/hooks/start-work/context-info-builder.d.ts +9 -9
  267. package/dist/hooks/start-work/context-info-formatters.d.ts +21 -0
  268. package/dist/hooks/start-work/explicit-plan-context.d.ts +9 -0
  269. package/dist/hooks/start-work/plan-discovery-context.d.ts +25 -0
  270. package/dist/hooks/start-work/plan-selection.d.ts +4 -0
  271. package/dist/hooks/start-work/work-initializer.d.ts +17 -0
  272. package/dist/hooks/tool-pair-validator/hook.d.ts +1 -37
  273. package/dist/hooks/tool-pair-validator/message-transform.d.ts +2 -0
  274. package/dist/hooks/tool-pair-validator/tool-part-ids.d.ts +6 -0
  275. package/dist/hooks/tool-pair-validator/tool-result-repair.d.ts +4 -0
  276. package/dist/hooks/tool-pair-validator/types.d.ts +36 -0
  277. package/dist/index.js +12708 -9988
  278. package/dist/oh-my-opencode.schema.json +4 -0
  279. package/dist/openclaw/reply-listener-poll-loop.d.ts +3 -0
  280. package/dist/openclaw/reply-listener-signature.d.ts +2 -0
  281. package/dist/openclaw/reply-listener-sleep.d.ts +1 -0
  282. package/dist/openclaw/reply-listener-start.d.ts +9 -0
  283. package/dist/openclaw/reply-listener-status.d.ts +4 -0
  284. package/dist/openclaw/reply-listener-stop.d.ts +7 -0
  285. package/dist/openclaw/reply-listener.d.ts +5 -18
  286. package/dist/openclaw/session-registry-lock.d.ts +2 -0
  287. package/dist/openclaw/session-registry-paths.d.ts +9 -0
  288. package/dist/openclaw/session-registry-storage.d.ts +4 -0
  289. package/dist/openclaw/session-registry-types.d.ts +11 -0
  290. package/dist/openclaw/session-registry.d.ts +2 -11
  291. package/dist/plugin/chat-message/loop-commands.d.ts +9 -0
  292. package/dist/plugin/chat-message/model-cache-warning.d.ts +12 -0
  293. package/dist/plugin/chat-message/prompt-text.d.ts +2 -0
  294. package/dist/plugin/chat-message/session-model.d.ts +4 -0
  295. package/dist/plugin/chat-message/start-work-message.d.ts +5 -0
  296. package/dist/plugin/chat-message/types.d.ts +67 -0
  297. package/dist/plugin/chat-message.d.ts +3 -24
  298. package/dist/plugin/event-error-utils.d.ts +14 -0
  299. package/dist/plugin/event-hook-dispatcher.d.ts +5 -0
  300. package/dist/plugin/event-model-fallback-state.d.ts +30 -0
  301. package/dist/plugin/event-model-fallback.d.ts +39 -0
  302. package/dist/plugin/event-session-lifecycle.d.ts +49 -0
  303. package/dist/plugin/event-session-recovery.d.ts +9 -0
  304. package/dist/plugin/event-team-handlers.d.ts +13 -0
  305. package/dist/plugin/event-types.d.ts +78 -0
  306. package/dist/plugin/event.d.ts +3 -12
  307. package/dist/plugin/hooks/create-core-hooks.d.ts +1 -0
  308. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -1
  309. package/dist/plugin/hooks/model-fallback-title-updater.d.ts +8 -0
  310. package/dist/plugin/session-compacting.d.ts +4 -1
  311. package/dist/plugin/system-transform.d.ts +1 -1
  312. package/dist/plugin/tool-execute-after.d.ts +2 -0
  313. package/dist/plugin/tool-registry-core-tools.d.ts +15 -0
  314. package/dist/plugin/tool-registry-factories.d.ts +36 -0
  315. package/dist/plugin/tool-registry-gated-tools.d.ts +16 -0
  316. package/dist/plugin/tool-registry-team-tools.d.ts +14 -0
  317. package/dist/plugin/tool-registry-trimming.d.ts +2 -0
  318. package/dist/plugin/tool-registry.d.ts +3 -38
  319. package/dist/plugin/ultrawork-db-model-override.d.ts +1 -1
  320. package/dist/plugin-config/agent-order-warnings.d.ts +1 -0
  321. package/dist/plugin-config/config-merger.d.ts +2 -0
  322. package/dist/plugin-config/layered-config-loader.d.ts +2 -0
  323. package/dist/plugin-config/single-config-loader.d.ts +4 -0
  324. package/dist/plugin-config.d.ts +3 -5
  325. package/dist/plugin-handlers/agent-config-assembly.d.ts +19 -0
  326. package/dist/plugin-handlers/agent-config-finalizer.d.ts +4 -0
  327. package/dist/plugin-handlers/agent-config-handler.d.ts +2 -11
  328. package/dist/plugin-handlers/agent-config-types.d.ts +30 -0
  329. package/dist/plugin-handlers/agent-skill-discovery.d.ts +3 -0
  330. package/dist/plugin-handlers/agent-source-loader.d.ts +2 -0
  331. package/dist/plugin-handlers/hook-config-handler.d.ts +0 -3
  332. package/dist/shared/context-window-usage.d.ts +7 -0
  333. package/dist/shared/dynamic-truncator-types.d.ts +17 -0
  334. package/dist/shared/dynamic-truncator.d.ts +8 -23
  335. package/dist/shared/migration/migrations-sidecar.d.ts +2 -2
  336. package/dist/shared/migration/model-versions.d.ts +7 -4
  337. package/dist/shared/model-availability.d.ts +1 -1
  338. package/dist/shared/opencode-version.d.ts +2 -2
  339. package/dist/shared/sparkshell-awareness.d.ts +5 -0
  340. package/dist/shared/spawn-with-windows-hide.d.ts +2 -0
  341. package/dist/shared/token-limit-truncator.d.ts +2 -0
  342. package/dist/testing/module-mock-lifecycle.d.ts +8 -0
  343. package/dist/tools/delegate-task/openai-categories.d.ts +0 -1
  344. package/dist/tools/delegate-task/subagent-agent-match.d.ts +3 -0
  345. package/dist/tools/delegate-task/subagent-model-resolution.d.ts +4 -0
  346. package/dist/tools/delegate-task/subagent-request-preflight.d.ts +3 -0
  347. package/dist/tools/delegate-task/subagent-resolution-types.d.ts +32 -0
  348. package/dist/tools/delegate-task/subagent-resolver.d.ts +3 -12
  349. package/dist/tools/delegate-task/sync-completion-message.d.ts +20 -0
  350. package/dist/tools/delegate-task/sync-poll-error-recovery.d.ts +1 -0
  351. package/dist/tools/delegate-task/sync-session-lifecycle.d.ts +12 -0
  352. package/dist/tools/delegate-task/sync-session-poller.d.ts +2 -0
  353. package/dist/tools/delegate-task/sync-spawn-reservation.d.ts +10 -0
  354. package/dist/tools/delegate-task/sync-task-metadata.d.ts +11 -0
  355. package/dist/tools/delegate-task/sync-task-runner.d.ts +30 -0
  356. package/dist/tools/delegate-task/sync-task.d.ts +2 -1
  357. package/dist/tools/hashline-edit/formatter-trigger.d.ts +2 -2
  358. package/package.json +15 -14
  359. package/packages/git-bash-mcp/dist/cli.js +29 -12
  360. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.d.ts +1 -1
  361. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js +1 -1
  362. package/packages/lsp-tools-mcp/dist/lsp/config-loader.js +95 -30
  363. package/packages/lsp-tools-mcp/dist/lsp/server-installation.d.ts +1 -2
  364. package/packages/lsp-tools-mcp/dist/lsp/server-installation.js +1 -11
  365. package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +1 -0
  366. package/packages/lsp-tools-mcp/dist/lsp/transport.js +5 -10
  367. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.d.ts +4 -1
  368. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js +84 -23
  369. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +2 -0
  370. package/packages/lsp-tools-mcp/dist/missing-dependency-result.js +14 -0
  371. package/packages/lsp-tools-mcp/dist/tools.js +64 -80
  372. package/packages/lsp-tools-mcp/package.json +4 -4
  373. package/packages/omo-codex/lazycodex-repository/.github/workflows/pr-source-guidance.yml +36 -0
  374. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  375. package/packages/omo-codex/plugin/README.md +3 -1
  376. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +188 -0
  377. package/packages/omo-codex/plugin/components/comment-checker/src/core-values.ts +1 -0
  378. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +15 -361
  379. package/packages/omo-codex/plugin/components/comment-checker/src/hook-input.ts +19 -0
  380. package/packages/omo-codex/plugin/components/comment-checker/src/record.ts +11 -0
  381. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +102 -0
  382. package/packages/omo-codex/plugin/components/comment-checker/src/types.ts +51 -0
  383. package/packages/omo-codex/plugin/components/comment-checker/test/codex-hook.test.ts +145 -0
  384. package/packages/omo-codex/plugin/components/comment-checker/test/core.test.ts +200 -0
  385. package/packages/omo-codex/plugin/components/lsp/CHANGELOG.md +2 -2
  386. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus.md +11 -5
  387. package/packages/omo-codex/plugin/components/rules/src/hook-output.ts +11 -1
  388. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +0 -1
  389. package/packages/omo-codex/plugin/components/rules/src/rules/constants.ts +1 -4
  390. package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-cache.ts +87 -0
  391. package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-loader.ts +94 -0
  392. package/packages/omo-codex/plugin/components/rules/src/rules/engine-loader.ts +84 -0
  393. package/packages/omo-codex/plugin/components/rules/src/rules/engine-paths.ts +103 -0
  394. package/packages/omo-codex/plugin/components/rules/src/rules/engine-static-loader.ts +43 -0
  395. package/packages/omo-codex/plugin/components/rules/src/rules/engine-types.ts +45 -0
  396. package/packages/omo-codex/plugin/components/rules/src/rules/engine.ts +8 -419
  397. package/packages/omo-codex/plugin/components/rules/src/rules/formatter.ts +39 -13
  398. package/packages/omo-codex/plugin/components/rules/src/rules/parser-frontmatter.ts +39 -0
  399. package/packages/omo-codex/plugin/components/rules/src/rules/parser-yaml.ts +271 -0
  400. package/packages/omo-codex/plugin/components/rules/src/rules/parser.ts +3 -294
  401. package/packages/omo-codex/plugin/components/rules/src/rules/truncator.ts +17 -0
  402. package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +57 -0
  403. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +13 -2
  404. package/packages/omo-codex/plugin/components/rules/src/transcript-rule-filter.ts +17 -0
  405. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +2 -1
  406. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +26 -11
  407. package/packages/omo-codex/plugin/components/rules/test/codex-hook-context-pressure.test.ts +104 -138
  408. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +5 -2
  409. package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +12 -5
  410. package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +10 -4
  411. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +65 -3
  412. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +67 -2
  413. package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +16 -0
  414. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +153 -0
  415. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +12 -0
  416. package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +236 -0
  417. package/packages/omo-codex/plugin/components/rules/test/tool-paths.test.ts +28 -50
  418. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +6 -3
  419. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +13 -6
  420. package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +21 -0
  421. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +64 -2
  422. package/packages/omo-codex/plugin/components/telemetry/README.md +11 -1
  423. package/packages/omo-codex/plugin/components/telemetry/biome.json +12 -0
  424. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +30 -3
  425. package/packages/omo-codex/plugin/components/telemetry/src/diagnostics.ts +154 -0
  426. package/packages/omo-codex/plugin/components/telemetry/src/posthog-activity-state.ts +18 -2
  427. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +36 -4
  428. package/packages/omo-codex/plugin/components/telemetry/test/codex-hook-diagnostics.test.ts +115 -0
  429. package/packages/omo-codex/plugin/components/telemetry/test/codex-hook.test.ts +16 -25
  430. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +119 -0
  431. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +1 -1
  432. package/packages/omo-codex/plugin/components/ultrawork/README.md +5 -5
  433. package/packages/omo-codex/plugin/components/ultrawork/agents/codex-ultrawork-reviewer.toml +2 -1
  434. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -0
  435. package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +0 -1
  436. package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +0 -1
  437. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -2
  438. package/packages/omo-codex/plugin/components/ultrawork/directive.md +97 -32
  439. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +65 -0
  440. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/agents/openai.yaml +7 -0
  441. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +131 -0
  442. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +38 -10
  443. package/packages/omo-codex/plugin/components/ultrawork/test/directive-contract.test.ts +18 -0
  444. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +47 -0
  445. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  446. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +12 -8
  447. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +28 -21
  448. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +2 -3
  449. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +7 -7
  450. package/packages/omo-codex/plugin/components/ulw-loop/src/command-types.ts +36 -0
  451. package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +64 -0
  452. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +98 -0
  453. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +17 -2
  454. package/packages/omo-codex/plugin/components/ulw-loop/src/runtime.ts +22 -0
  455. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-types.ts +69 -0
  456. package/packages/omo-codex/plugin/components/ulw-loop/src/types.ts +5 -277
  457. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +35 -13
  458. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +52 -0
  459. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering.test.ts +67 -111
  460. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
  461. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +31 -2
  462. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +46 -9
  463. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +20 -29
  464. package/packages/omo-codex/plugin/model-catalog.json +5 -11
  465. package/packages/omo-codex/plugin/package-lock.json +1 -1
  466. package/packages/omo-codex/plugin/scripts/auto-update-state.mjs +78 -0
  467. package/packages/omo-codex/plugin/scripts/auto-update.mjs +166 -76
  468. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +71 -0
  469. package/packages/omo-codex/plugin/scripts/migrate-codex-config/config-paths.mjs +44 -0
  470. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +40 -0
  471. package/packages/omo-codex/plugin/scripts/migrate-codex-config/root-settings.mjs +74 -0
  472. package/packages/omo-codex/plugin/scripts/migrate-codex-config/state.mjs +29 -0
  473. package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +33 -204
  474. package/packages/omo-codex/plugin/scripts/spawn-command.mjs +11 -0
  475. package/packages/omo-codex/plugin/scripts/sync-hook-status-messages.mjs +23 -9
  476. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +131 -28
  477. package/packages/omo-codex/plugin/skills/debugging/references/methodology/04-oracle-triple.md +3 -3
  478. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +100 -0
  479. package/packages/omo-codex/plugin/skills/git-master/agents/openai.yaml +13 -0
  480. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +9 -7
  481. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +176 -0
  482. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +12 -0
  483. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +107 -0
  484. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +119 -14
  485. package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +4 -2
  486. package/packages/omo-codex/plugin/skills/programming/references/go/concurrency.md +2 -2
  487. package/packages/omo-codex/plugin/skills/programming/references/python/async-anyio.md +6 -6
  488. package/packages/omo-codex/plugin/skills/programming/references/python/pydantic-ai.md +12 -12
  489. package/packages/omo-codex/plugin/skills/programming/references/typescript/backend-hono.md +7 -7
  490. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +13 -11
  491. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +10 -8
  492. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +68 -33
  493. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +86 -22
  494. package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +770 -0
  495. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +12 -8
  496. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +28 -21
  497. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +45 -379
  498. package/packages/omo-codex/plugin/skills/ulw-plan/agents/openai.yaml +7 -0
  499. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +131 -0
  500. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +237 -0
  501. package/packages/omo-codex/plugin/skills/visual-qa/scripts/ansi.ts +17 -0
  502. package/packages/omo-codex/plugin/skills/visual-qa/scripts/cli.ts +82 -0
  503. package/packages/omo-codex/plugin/skills/visual-qa/scripts/east-asian-width.ts +72 -0
  504. package/packages/omo-codex/plugin/skills/visual-qa/scripts/image-diff.ts +109 -0
  505. package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-crc.ts +27 -0
  506. package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-decode.ts +206 -0
  507. package/packages/omo-codex/plugin/skills/visual-qa/scripts/png-synth.ts +57 -0
  508. package/packages/omo-codex/plugin/skills/visual-qa/scripts/tui-grid.ts +88 -0
  509. package/packages/omo-codex/plugin/skills/visual-qa/scripts/types.ts +54 -0
  510. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +55 -0
  511. package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +38 -0
  512. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +164 -0
  513. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +73 -0
  514. package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +69 -0
  515. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +53 -0
  516. package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +83 -0
  517. package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +67 -0
  518. package/packages/omo-codex/plugin/test/aggregate.test.mjs +2 -514
  519. package/packages/omo-codex/plugin/test/auto-update-state-persistence.test.mjs +36 -0
  520. package/packages/omo-codex/plugin/test/auto-update.test.mjs +191 -29
  521. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +1 -1
  522. package/packages/omo-codex/plugin/test/global-review-debug-gate.test.mjs +29 -0
  523. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +23 -10
  524. package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +81 -0
  525. package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +91 -0
  526. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +244 -9
  527. package/packages/omo-codex/plugin/test/node-install-surface.test.mjs +0 -19
  528. package/packages/omo-codex/plugin/test/start-work-skill.test.mjs +107 -0
  529. package/packages/omo-codex/plugin/test/subagent-guidance.test.mjs +82 -7
  530. package/packages/omo-codex/plugin/test/sync-hook-status-messages.test.mjs +58 -6
  531. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +152 -0
  532. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +158 -50
  533. package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +43 -0
  534. package/packages/omo-codex/scripts/install/agent-source-roots.mjs +13 -0
  535. package/packages/omo-codex/scripts/install/agents.mjs +84 -14
  536. package/packages/omo-codex/scripts/install/bin-links.mjs +239 -0
  537. package/packages/omo-codex/scripts/install/cache.mjs +152 -108
  538. package/packages/omo-codex/scripts/install/cached-marketplace-manifest.mjs +21 -0
  539. package/packages/omo-codex/scripts/install/cli-args.mjs +39 -2
  540. package/packages/omo-codex/scripts/install/config.mjs +9 -5
  541. package/packages/omo-codex/scripts/install/lazycodex-version-stamp.mjs +102 -0
  542. package/packages/omo-codex/scripts/install/legacy-bins.mjs +9 -1
  543. package/packages/omo-codex/scripts/install/model-catalog.mjs +9 -1
  544. package/packages/omo-codex/scripts/install/multi-agent-v2-config.mjs +12 -10
  545. package/packages/omo-codex/scripts/install/process.mjs +3 -1
  546. package/packages/omo-codex/scripts/install/project-local-cleanup.mjs +0 -1
  547. package/packages/omo-codex/scripts/install/snapshot.mjs +0 -1
  548. package/packages/omo-codex/scripts/install-agent-links.test.mjs +205 -11
  549. package/packages/omo-codex/scripts/install-bin-links.test.mjs +123 -1
  550. package/packages/omo-codex/scripts/install-cache-copy.test.mjs +129 -5
  551. package/packages/omo-codex/scripts/install-cli-args.test.mjs +82 -1
  552. package/packages/omo-codex/scripts/install-config-preservation.test.mjs +43 -0
  553. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +14 -1
  554. package/packages/omo-codex/scripts/install-config.test.mjs +49 -1
  555. package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +84 -0
  556. package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +51 -0
  557. package/packages/omo-codex/scripts/install-local.mjs +42 -40
  558. package/packages/omo-codex/scripts/install-local.test.mjs +17 -241
  559. package/packages/omo-codex/scripts/install-marketplace-cache.test.mjs +162 -0
  560. package/packages/omo-codex/scripts/install-packaged-local.test.mjs +10 -6
  561. package/packages/omo-codex/scripts/install-project-local-cleanup.test.mjs +73 -2
  562. package/packages/omo-codex/scripts/sync-telemetry-component.mjs +1 -0
  563. package/packages/shared-skills/skills/debugging/references/methodology/04-oracle-triple.md +3 -3
  564. package/packages/shared-skills/skills/git-master/SKILL.md +100 -0
  565. package/packages/shared-skills/skills/git-master/agents/openai.yaml +13 -0
  566. package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +176 -0
  567. package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +12 -0
  568. package/packages/shared-skills/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +107 -0
  569. package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +119 -14
  570. package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +4 -2
  571. package/packages/shared-skills/skills/programming/references/go/concurrency.md +2 -2
  572. package/packages/shared-skills/skills/programming/references/python/async-anyio.md +6 -6
  573. package/packages/shared-skills/skills/programming/references/python/pydantic-ai.md +12 -12
  574. package/packages/shared-skills/skills/programming/references/typescript/backend-hono.md +7 -7
  575. package/packages/shared-skills/skills/refactor/SKILL.md +4 -4
  576. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -1
  577. package/packages/shared-skills/skills/review-work/SKILL.md +55 -33
  578. package/packages/shared-skills/skills/start-work/SKILL.md +76 -19
  579. package/packages/shared-skills/skills/ultraresearch/SKILL.md +770 -0
  580. package/packages/shared-skills/skills/visual-qa/SKILL.md +219 -0
  581. package/packages/shared-skills/skills/visual-qa/scripts/ansi.test.ts +45 -0
  582. package/packages/shared-skills/skills/visual-qa/scripts/ansi.ts +17 -0
  583. package/packages/shared-skills/skills/visual-qa/scripts/cli.test.ts +73 -0
  584. package/packages/shared-skills/skills/visual-qa/scripts/cli.ts +82 -0
  585. package/packages/shared-skills/skills/visual-qa/scripts/east-asian-width.test.ts +60 -0
  586. package/packages/shared-skills/skills/visual-qa/scripts/east-asian-width.ts +72 -0
  587. package/packages/shared-skills/skills/visual-qa/scripts/image-diff.test.ts +70 -0
  588. package/packages/shared-skills/skills/visual-qa/scripts/image-diff.ts +109 -0
  589. package/packages/shared-skills/skills/visual-qa/scripts/png-crc.ts +27 -0
  590. package/packages/shared-skills/skills/visual-qa/scripts/png-decode.test.ts +44 -0
  591. package/packages/shared-skills/skills/visual-qa/scripts/png-decode.ts +206 -0
  592. package/packages/shared-skills/skills/visual-qa/scripts/png-synth.ts +57 -0
  593. package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +83 -0
  594. package/packages/shared-skills/skills/visual-qa/scripts/tui-grid.test.ts +57 -0
  595. package/packages/shared-skills/skills/visual-qa/scripts/tui-grid.ts +88 -0
  596. package/packages/shared-skills/skills/visual-qa/scripts/types.ts +54 -0
  597. package/postinstall.mjs +24 -1
  598. package/dist/agents/custom-agent-summaries.d.ts +0 -8
  599. package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +0 -20
  600. package/dist/agents/prometheus/gemini.d.ts +0 -1
  601. package/dist/agents/prometheus/gpt.d.ts +0 -1
  602. package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +0 -8
  603. package/dist/features/background-agent/session-route.d.ts +0 -12
  604. package/dist/features/background-agent/spawner/parent-directory-resolver.d.ts +0 -6
  605. package/dist/features/background-agent/state.d.ts +0 -35
  606. package/dist/features/claude-tasks/session-storage.d.ts +0 -9
  607. package/dist/features/mcp-oauth/resource-indicator.d.ts +0 -2
  608. package/dist/features/mcp-oauth/schema.d.ts +0 -6
  609. package/dist/features/opencode-skill-loader/async-loader.d.ts +0 -6
  610. package/dist/features/opencode-skill-loader/blocking.d.ts +0 -2
  611. package/dist/features/opencode-skill-loader/discover-worker.d.ts +0 -1
  612. package/dist/hooks/session-recovery/recover-empty-content-message-sdk.d.ts +0 -13
  613. package/dist/shared/bun-hash-shim.d.ts +0 -1
  614. package/dist/tools/delegate-task/resolve-call-id.d.ts +0 -2
  615. package/packages/shared-skills/skills/ulw-plan/SKILL.md +0 -383
  616. /package/packages/lsp-tools-mcp/dist/lsp/{utils.d.ts → startup-failure.d.ts} +0 -0
  617. /package/packages/lsp-tools-mcp/dist/lsp/{utils.js → startup-failure.js} +0 -0
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: git-master
3
+ description: "MUST USE whenever a task needs a commit or git-history investigation. Covers atomic commits, staging, commit-message style, rebase, squash, fixup/autosquash, blame, bisect, reflog, git log -S/-G, and questions like who wrote this or when was this added. Do not use for ordinary code edits unless the user asks for git work."
4
+ ---
5
+
6
+ # Git Master
7
+
8
+ Use this skill when the user asks you to operate on Git history or answer a Git-history question. Be exact, conservative, and evidence-led. Read the repository state before you infer anything.
9
+
10
+ ## Mode Gate
11
+
12
+ Classify the request first:
13
+
14
+ - `COMMIT`: stage and commit local changes.
15
+ - `REBASE`: rebase, squash, fixup, autosquash, reorder, split, or otherwise rewrite branch history.
16
+ - `HISTORY`: answer when, where, who, why, or which commit changed something.
17
+ - `STATUS`: inspect branch, diff, or working-tree state without changing it.
18
+
19
+ Do not commit, rebase, push, force-push, reset, stash-pop, or delete anything unless the user explicitly asked for that operation. If the request is only investigative, report findings and stop.
20
+
21
+ ## Ground Truth
22
+
23
+ Gather independent facts in parallel when the tools allow it:
24
+
25
+ ```bash
26
+ git status --short
27
+ git diff --stat
28
+ git diff --staged --stat
29
+ git branch --show-current
30
+ git log -30 --oneline
31
+ git log -30 --pretty=format:%s
32
+ git rev-parse --abbrev-ref @{upstream}
33
+ git merge-base HEAD origin/main
34
+ git merge-base HEAD origin/master
35
+ ```
36
+
37
+ Missing upstream or missing `main`/`master` is normal. Fall back to the best available branch or report the missing fact. Never treat a failed lookup as proof.
38
+
39
+ ## Commit Mode
40
+
41
+ Commit only the user's requested changes. Preserve unrelated dirty work.
42
+
43
+ 1. Detect message style from recent history. Use the dominant local pattern, language, and casing. Do not default to Conventional Commits unless the repo uses them.
44
+ 2. Inspect the full diff, not only filenames. Separate unrelated user edits from the requested commit.
45
+ 3. Build atomic groups by behavior, module, and revertability. Keep implementation and its direct tests together.
46
+ 4. Prefer multiple commits for unrelated concerns. A single commit is acceptable only when the changed files form one indivisible behavior or the user explicitly asks for one commit.
47
+ 5. Stage by path or hunk so each commit contains only its atomic group.
48
+ 6. Before each commit, verify `git diff --staged --stat` and enough staged diff to prove the group is right.
49
+ 7. Commit with the detected style. After each commit, verify `git log -1 --oneline`.
50
+
51
+ Grouping rules:
52
+
53
+ - Split different features, modules, generated artifacts, config, docs, and test-only changes unless they are inseparable.
54
+ - Keep generated files with the source change that produced them when omitting them would leave the repo inconsistent.
55
+ - Never hide failing or unrelated changes inside a broad commit.
56
+
57
+ Final report: list commit hashes, messages, and any remaining uncommitted files.
58
+
59
+ ## Rebase Mode
60
+
61
+ History rewriting is a shared-impact operation.
62
+
63
+ - Never rebase or rewrite `main`, `master`, `dev`, release branches, or a protected branch unless the user explicitly named that exact operation.
64
+ - If commits may already be pushed, ask before force-pushing. Use `--force-with-lease`, never plain `--force`.
65
+ - If the worktree is dirty, preserve it intentionally before rebasing. Do not stash-pop over conflicts without checking what changed.
66
+ - For fixups, prefer `git commit --fixup=<hash>` followed by `GIT_SEQUENCE_EDITOR=: git rebase -i --autosquash <base>`.
67
+ - For conflicts, read the conflicting files and resolve by intent. Do not choose ours/theirs blindly.
68
+ - If a rebase goes wrong, use `git rebase --abort` first. Use reflog only after explaining the recovery path.
69
+
70
+ After rewriting, run the relevant tests or at least the project's cheapest smoke check, then show the new branch log from base to HEAD.
71
+
72
+ ## History Mode
73
+
74
+ Choose the Git tool by the question:
75
+
76
+ - `git log -S "text"`: when the count of an exact string changed.
77
+ - `git log -G "regex"`: when diffs touched lines matching a pattern.
78
+ - `git blame -L start,end -- file`: who last changed specific lines.
79
+ - `git log --follow -- file`: history across renames for one file.
80
+ - `git show <hash>`: inspect the commit that appears relevant.
81
+ - `git bisect`: find the first bad commit when there is a deterministic pass/fail command and known good/bad bounds.
82
+ - `git reflog`: recover or explain recent local history movement.
83
+
84
+ Always cite the exact command evidence in the answer: commit hash, subject, file path, and line or diff context when relevant. If the evidence is ambiguous, say what remains unproven.
85
+
86
+ ## Safety Checks
87
+
88
+ Before any write to Git history:
89
+
90
+ - Current branch is known.
91
+ - Dirty work is accounted for.
92
+ - Upstream/pushed status is known or explicitly unknown.
93
+ - The operation matches the user's request.
94
+ - Recovery path is known (`rebase --abort`, reflog hash, or untouched worktree).
95
+
96
+ Before finishing:
97
+
98
+ - Run the most relevant verification available for the changed behavior or history operation.
99
+ - Report commands that passed and any command you could not run.
100
+ - Leave the worktree state explicit.
@@ -0,0 +1,13 @@
1
+ interface:
2
+ display_name: "git-master (omo)"
3
+ short_description: "Atomic Git commits, history surgery, and source archaeology"
4
+ search_terms:
5
+ - "git-master"
6
+ - "git commit"
7
+ - "atomic commit"
8
+ - "rebase"
9
+ - "squash"
10
+ - "git blame"
11
+ - "git bisect"
12
+ - "history search"
13
+ default_prompt: "Use $git-master to inspect the repository state, preserve unrelated work, and handle the requested Git operation with atomic grouping, history safety checks, and evidence-backed verification."
@@ -8,15 +8,17 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
8
8
 
9
9
  | OpenCode example | Codex tool to use |
10
10
  | --- | --- |
11
- | `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent(agent_type="explorer", task_name="...", message="...", fork_turns="none")` |
12
- | `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent(agent_type="librarian", task_name="...", message="...", fork_turns="none")` |
13
- | `task(subagent_type="plan", ...)` | `spawn_agent(agent_type="plan", task_name="...", message="...", fork_turns="none")` |
14
- | `task(subagent_type="oracle", ...)` for final verification | `spawn_agent(agent_type="codex-ultrawork-reviewer", task_name="...", message="...", fork_turns="none")` |
15
- | `task(category="...", ...)` for implementation or QA | `spawn_agent(agent_type="worker", task_name="...", message="...", fork_turns="none")` |
16
- | `background_output(task_id="...")` | `wait_agent(...)` to wait for subagent completion and mailbox updates |
11
+ | `call_omo_agent(subagent_type="explore", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as an explorer. ...","fork_turns":"none"})` |
12
+ | `call_omo_agent(subagent_type="librarian", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a librarian. ...","fork_turns":"none"})` |
13
+ | `task(subagent_type="plan", ...)` | `spawn_agent({"task_name":"...","message":"TASK: act as a planning agent. ...","fork_turns":"none"})` |
14
+ | `task(subagent_type="oracle", ...)` for final verification | `spawn_agent({"task_name":"...","message":"TASK: act as a rigorous reviewer. ...","fork_turns":"none"})` |
15
+ | `task(category="...", ...)` for implementation or QA | `spawn_agent({"task_name":"...","message":"TASK: act as an implementation or QA worker. ...","fork_turns":"none"})` |
16
+ | `background_output(task_id="...")` | `wait_agent(...)` for mailbox signals; after a timeout, run one `list_agents` check for the named child if reassurance is needed |
17
17
  | `team_*(...)` | Use Codex native subagents plus `send_message`, `followup_task`, `wait_agent`, and `close_agent` |
18
18
 
19
- Codex full-history forks inherit the parent agent type, model, and reasoning effort, so role-specific spawns with `agent_type` must use a non-full-history fork mode such as `fork_turns="none"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.
19
+ Codex full-history forks inherit parent context, so role-specific behavior must be described in a self-contained `message` and usually should use a non-full-history fork mode such as `fork_turns="none"`. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.
20
+
21
+ For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `wait_agent` timeout only means no new mailbox update arrived. Treat a running child or latest `WORKING:` message as alive. Do not use `list_agents` as a polling loop. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.
20
22
 
21
23
  # /init-deep
22
24
 
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: lcx-contribute-bug-fix
3
+ description: "Contribute a verified bug-fix PR for LazyCodex, lazycodex-ai, omo-codex, bundled Codex skills, or upstream Codex CLI bugs. Use when the user asks to fix a bug, contribute a bug fix, contribute to fix bug, open a PR for a bug, or debug and PR a LazyCodex/Codex defect."
4
+ metadata:
5
+ short-description: Contribute verified LazyCodex or Codex bug-fix PRs
6
+ ---
7
+
8
+ # lcx-contribute-bug-fix
9
+
10
+ Use this skill to debug a concrete LazyCodex or Codex defect, implement the smallest correct fix in a fresh temporary workspace, and open a GitHub PR. Work in English, keep the PR body short, and support every claim with runtime or source evidence.
11
+
12
+ Route ownership the same way as `$lcx-report-bug`:
13
+
14
+ - `code-yeongyu/lazycodex` for LazyCodex, lazycodex-ai, omo-codex, bundled skills, hooks, MCP wiring, installer behavior, marketplace sync, docs, or packaging.
15
+ - `openai/codex` for upstream Codex CLI bugs that reproduce without LazyCodex or come from Codex core behavior.
16
+
17
+ ## Required Outcome
18
+
19
+ Create a PR that includes:
20
+
21
+ - a focused branch from a fresh `/tmp` clone/worktree
22
+ - reproduction logs from before the fix
23
+ - the smallest implementation that fixes the defect
24
+ - verification logs from after the fix
25
+ - apply `lazycodex-generated` when label management is available
26
+ - the required LazyCodex footer tag `Tag: lazycodex-generated`
27
+ - cleanup of temporary worktrees and clones
28
+
29
+ ## Required Workflow
30
+
31
+ 1. Read the user's bug report and identify the affected surface.
32
+ 2. Invoke `$omo:debugging` for the investigation. If only unqualified skill names are exposed, invoke `$debugging` and state that it is the OMO debugging skill.
33
+ 3. Decide the target repository. If ownership is close, compare against upstream Codex source under `/tmp/openai-codex-source` before choosing.
34
+ 4. Create a fresh temporary clone and branch. Do not modify the user's current repository for the target fix unless the current repository is itself the requested target and the user explicitly asked for local edits.
35
+
36
+ ```bash
37
+ TARGET_REPO="code-yeongyu/lazycodex" # or openai/codex
38
+ WORK_ROOT="$(mktemp -d /tmp/lazycodex-fix-XXXXXX)"
39
+ gh repo clone "$TARGET_REPO" "$WORK_ROOT/repo" -- --depth=1
40
+ cd "$WORK_ROOT/repo"
41
+ BASE_BRANCH="$(git remote show origin | sed -n '/HEAD branch/s/.*: //p')"
42
+ git fetch origin "$BASE_BRANCH" --depth=1
43
+ BRANCH_NAME="lazycodex/bug-fix-<short-slug>"
44
+ git worktree add "$WORK_ROOT/worktree" -b "$BRANCH_NAME" "origin/$BASE_BRANCH"
45
+ cd "$WORK_ROOT/worktree"
46
+ ```
47
+
48
+ If `gh` cannot clone, use `git clone --depth=1 "https://github.com/$TARGET_REPO" "$WORK_ROOT/repo"` and continue with the same worktree flow.
49
+
50
+ 5. Reproduce the bug in the worktree through the real surface. Save exact command output to `/tmp/lazycodex-fix-<short-slug>-repro.log`.
51
+ 6. Write or update a failing regression test before production changes. Confirm it fails for the bug, not for a missing fixture or typo.
52
+ 7. Implement the smallest correct fix. Avoid refactors unless the fix cannot be made safely without one.
53
+ 8. Run the regression test, adjacent tests, and the smallest real-surface QA command that proves the user-visible behavior changed.
54
+ 9. Commit the verified fix before pushing. Inspect the status first so the PR cannot be empty or stale:
55
+
56
+ ```bash
57
+ git status --short
58
+ git add -A
59
+ git commit -m "fix: <short bug-fix summary>"
60
+ git log --oneline "origin/$BASE_BRANCH..HEAD"
61
+ ```
62
+
63
+ 10. Generate the PR body with `scripts/create-pr-body.mjs`.
64
+ 11. Ensure the generated label exists when the target repo allows label management. Keep the footer tag even when label creation is unavailable:
65
+
66
+ ```bash
67
+ LABEL_ARGS=()
68
+ if gh label create lazycodex-generated --repo "$TARGET_REPO" --color "7C3AED" --description "Created by LazyCodex" --force; then
69
+ LABEL_ARGS=(--label lazycodex-generated)
70
+ else
71
+ echo "Label management unavailable for $TARGET_REPO; keeping the footer tag only."
72
+ fi
73
+ ```
74
+
75
+ 12. Push to a writable remote, then create the PR. For upstream `openai/codex`, fork first and use the fork as the head repository:
76
+
77
+ ```bash
78
+ PUSH_REMOTE="origin"
79
+ PR_HEAD="$BRANCH_NAME"
80
+ if [ "$TARGET_REPO" = "openai/codex" ]; then
81
+ gh repo fork "$TARGET_REPO" --remote --remote-name fork
82
+ PUSH_REMOTE="fork"
83
+ GH_USER="$(gh api user --jq .login)"
84
+ PR_HEAD="$GH_USER:$BRANCH_NAME"
85
+ fi
86
+
87
+ git push -u "$PUSH_REMOTE" "$BRANCH_NAME"
88
+ gh pr create --repo "$TARGET_REPO" --base "$BASE_BRANCH" --head "$PR_HEAD" --title "<short fix title>" "${LABEL_ARGS[@]}" --body-file "$PR_BODY"
89
+ ```
90
+
91
+ 13. Clean up:
92
+
93
+ ```bash
94
+ cd /
95
+ git -C "$WORK_ROOT/repo" worktree remove "$WORK_ROOT/worktree"
96
+ find "$WORK_ROOT" -mindepth 1 -maxdepth 1 -exec rm -r -- {} +
97
+ rmdir "$WORK_ROOT"
98
+ ```
99
+
100
+ Return the PR URL, the reproduction command, the verification command, and the cleanup receipt.
101
+
102
+ ## PR Body Generator
103
+
104
+ Use the bundled script to generate the PR body. Create a JSON file with this shape:
105
+
106
+ ```json
107
+ {
108
+ "title": "Fix short user-visible failure",
109
+ "targetRepository": "code-yeongyu/lazycodex",
110
+ "problem": "What is broken for the user.",
111
+ "reproductionLogs": "Exact failing command, log excerpt, or trace.",
112
+ "approach": "What changed and why this is the smallest correct fix.",
113
+ "confidence": "Why the diagnosis and fix are strongly supported.",
114
+ "risks": "Risk level and what could regress.",
115
+ "userVisibleBehaviorChanges": "What changes for the user after the PR.",
116
+ "verification": ["failing test before fix", "passing test after fix", "manual QA command"]
117
+ }
118
+ ```
119
+
120
+ Run:
121
+
122
+ ```bash
123
+ PR_INPUT="/tmp/lazycodex-fix-<short-slug>-pr.json"
124
+ PR_BODY="/tmp/lazycodex-fix-<short-slug>-pr.md"
125
+ node "<skill-root>/scripts/create-pr-body.mjs" "$PR_INPUT" "$PR_BODY"
126
+ ```
127
+
128
+ ## PR Body Template
129
+
130
+ The generated body must follow this structure:
131
+
132
+ ```markdown
133
+ ## Problem Situation
134
+ [What failed for the user.]
135
+
136
+ ## Reproduction Logs
137
+ [Exact failing command and relevant log excerpt.]
138
+
139
+ ## Approach
140
+ [What changed and why.]
141
+
142
+ ## Why I Am Confident
143
+ [Evidence that proves the root cause and fix.]
144
+
145
+ ## Risks
146
+ [Risk level and possible regressions.]
147
+
148
+ ## User-Visible Behavior Changes
149
+ [What users experience after this PR.]
150
+
151
+ ## Verification
152
+ - [RED test output or repro before the fix]
153
+ - [GREEN test output after the fix]
154
+ - [Manual QA command and result]
155
+
156
+ ---
157
+ This PR was debugged, implemented, and created with [LazyCodex](https://github.com/code-yeongyu/lazycodex).
158
+ Tag: lazycodex-generated
159
+ ```
160
+
161
+ ## Stop Conditions
162
+
163
+ Stop and ask one narrow question only when:
164
+
165
+ - the bug cannot be reproduced from available information
166
+ - target repository ownership remains ambiguous after comparing LazyCodex and upstream Codex evidence
167
+ - authentication is missing for pushing or creating the PR
168
+ - the fix requires a product decision rather than a technical correction
169
+
170
+ Do not open:
171
+
172
+ - a PR without a failing-before and passing-after test
173
+ - a PR without a real-surface QA command
174
+ - a PR without the `Tag: lazycodex-generated` footer
175
+ - a vague fix that does not identify the root cause
176
+ - a broad refactor disguised as a bug fix
@@ -0,0 +1,12 @@
1
+ interface:
2
+ display_name: "lcx-contribute-bug-fix (omo)"
3
+ short_description: "Contribute verified LazyCodex or Codex bug-fix PRs"
4
+ search_terms:
5
+ - "lcx-contribute-bug-fix"
6
+ - "contribute a bug fix"
7
+ - "contribute to fix bug"
8
+ - "fix bug pr"
9
+ - "lazycodex fix"
10
+ - "omo-codex bug fix"
11
+ - "codex bug fix pr"
12
+ default_prompt: "Use $lcx-contribute-bug-fix to debug this LazyCodex or Codex bug, work from a fresh /tmp clone and worktree, implement the smallest verified fix, generate the PR body, apply the lazycodex-generated label, open the PR, and clean up."
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+ import { pathToFileURL } from "node:url";
4
+
5
+ const REQUIRED_STRING_FIELDS = [
6
+ "title",
7
+ "targetRepository",
8
+ "problem",
9
+ "reproductionLogs",
10
+ "approach",
11
+ "confidence",
12
+ "risks",
13
+ "userVisibleBehaviorChanges",
14
+ ];
15
+
16
+ function requireRecord(value) {
17
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
18
+ throw new Error("input must be a JSON object");
19
+ }
20
+ return value;
21
+ }
22
+
23
+ function requireStringField(record, field) {
24
+ const value = record[field];
25
+ if (typeof value !== "string" || value.trim() === "") {
26
+ throw new Error(`${field} must be a non-empty string`);
27
+ }
28
+ return value.trim();
29
+ }
30
+
31
+ function requireVerification(record) {
32
+ const value = record.verification;
33
+ if (!Array.isArray(value) || value.length === 0) {
34
+ throw new Error("verification must be a non-empty string array");
35
+ }
36
+ return value.map((entry, index) => {
37
+ if (typeof entry !== "string" || entry.trim() === "") {
38
+ throw new Error(`verification[${index}] must be a non-empty string`);
39
+ }
40
+ return entry.trim();
41
+ });
42
+ }
43
+
44
+ function parseInput(value) {
45
+ const record = requireRecord(value);
46
+ const strings = Object.fromEntries(REQUIRED_STRING_FIELDS.map((field) => [field, requireStringField(record, field)]));
47
+ return {
48
+ title: strings.title,
49
+ targetRepository: strings.targetRepository,
50
+ problem: strings.problem,
51
+ reproductionLogs: strings.reproductionLogs,
52
+ approach: strings.approach,
53
+ confidence: strings.confidence,
54
+ risks: strings.risks,
55
+ userVisibleBehaviorChanges: strings.userVisibleBehaviorChanges,
56
+ verification: requireVerification(record),
57
+ };
58
+ }
59
+
60
+ function bulletList(items) {
61
+ return items.map((item) => `- ${item}`).join("\n");
62
+ }
63
+
64
+ export function createLazyCodexBugFixPrBody(value) {
65
+ const input = parseInput(value);
66
+ return `## Problem Situation
67
+ ${input.problem}
68
+
69
+ ## Reproduction Logs
70
+ ${input.reproductionLogs}
71
+
72
+ ## Approach
73
+ ${input.approach}
74
+
75
+ ## Why I Am Confident
76
+ ${input.confidence}
77
+
78
+ ## Risks
79
+ ${input.risks}
80
+
81
+ ## User-Visible Behavior Changes
82
+ ${input.userVisibleBehaviorChanges}
83
+
84
+ ## Verification
85
+ ${bulletList(input.verification)}
86
+
87
+ ---
88
+ This PR was debugged, implemented, and created with [LazyCodex](https://github.com/code-yeongyu/lazycodex).
89
+ Tag: lazycodex-generated
90
+ `;
91
+ }
92
+
93
+ async function main() {
94
+ const [, , inputPath, outputPath] = process.argv;
95
+ if (typeof inputPath !== "string" || inputPath.trim() === "") {
96
+ throw new Error("usage: create-pr-body.mjs <input.json> <output.md>");
97
+ }
98
+ if (typeof outputPath !== "string" || outputPath.trim() === "") {
99
+ throw new Error("usage: create-pr-body.mjs <input.json> <output.md>");
100
+ }
101
+ const parsed = JSON.parse(await readFile(inputPath, "utf8"));
102
+ await writeFile(outputPath, createLazyCodexBugFixPrBody(parsed), "utf8");
103
+ }
104
+
105
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
106
+ await main();
107
+ }
@@ -1,21 +1,25 @@
1
1
  ---
2
2
  name: lcx-report-bug
3
- description: "Create a high-signal LazyCodex bug report for code-yeongyu/lazycodex. Use this whenever the user asks to report, file, open, or triage a LazyCodex, lazycodex-ai, omo-codex, or Codex plugin bug, especially when they need root cause, reproduction steps, expected fix guidance, and a GitHub issue."
3
+ description: "Create a high-signal bug issue or PR in the repo that owns the defect. Use this whenever the user asks to report, file, open, or triage a LazyCodex, lazycodex-ai, omo-codex, Codex plugin, or upstream Codex CLI bug, especially when they need source-backed root cause, reproduction steps, fix guidance, and GitHub routing."
4
4
  metadata:
5
- short-description: Report LazyCodex bugs with debugging evidence
5
+ short-description: Route LazyCodex or Codex bugs with source evidence
6
6
  ---
7
7
 
8
8
  # lcx-report-bug
9
9
 
10
- You are a LazyCodex bug reporter. Produce one useful GitHub issue in English for `code-yeongyu/lazycodex`, backed by runtime evidence rather than guesses.
10
+ You are a LazyCodex bug router and reporter. Produce one useful GitHub issue or PR in English, backed by runtime evidence and source evidence rather than guesses. Route it to the repository that owns the defect:
11
+
12
+ - `code-yeongyu/lazycodex` for LazyCodex, lazycodex-ai, omo-codex, marketplace, bundled skill, hook, MCP, installer, or packaging bugs.
13
+ - `openai/codex` for upstream Codex CLI bugs that reproduce without LazyCodex or are caused by Codex core behavior.
11
14
 
12
15
  Use GPT-5.5 style: outcome first, concise, evidence-bound. Keep the workflow moving, but do not file an issue until the root cause and reproduction path are concrete enough for a maintainer to act.
13
16
 
14
17
  ## Goal
15
18
 
16
- Create or prepare a GitHub issue that includes:
19
+ Create or prepare a GitHub issue or PR that includes:
17
20
 
18
21
  - clear title
22
+ - target repository decision
19
23
  - environment
20
24
  - reproducible steps
21
25
  - expected behavior
@@ -23,24 +27,66 @@ Create or prepare a GitHub issue that includes:
23
27
  - confirmed or strongly evidenced root cause
24
28
  - fix approach, including files or components likely involved
25
29
  - verification plan
30
+ - `lazycodex-generated` label and footer tag
26
31
 
27
32
  ## Required Workflow
28
33
 
29
34
  1. Read the user's bug report and identify the affected surface: LazyCodex installer, Codex plugin, skill, hook, MCP, CLI alias, GitHub marketplace sync, or web/docs.
30
35
  2. Invoke `$omo:debugging` for the investigation. If Codex exposes only unqualified skill names in the current session, invoke `$debugging` and state that it is the OMO debugging skill.
31
- 3. Follow the debugging skill far enough to gather runtime evidence:
36
+ 3. Materialize upstream Codex source under `/tmp` before deciding ownership:
37
+
38
+ ```bash
39
+ CODEX_SRC="/tmp/openai-codex-source"
40
+ if [ ! -d "$CODEX_SRC/.git" ]; then
41
+ gh repo clone openai/codex "$CODEX_SRC" -- --depth=1
42
+ else
43
+ git -C "$CODEX_SRC" fetch --depth=1 origin
44
+ fi
45
+ ```
46
+
47
+ If `gh` is unavailable, use `git clone --depth=1 https://github.com/openai/codex "$CODEX_SRC"`.
48
+ 4. Follow the debugging skill far enough to gather runtime evidence:
32
49
  - form at least three plausible hypotheses
33
50
  - run the smallest reproduction that exercises the real surface
34
51
  - confirm the root cause by observing the failing state
35
52
  - identify the minimal fix path or maintainer action
36
- 4. Search for an existing issue before creating a new one:
53
+ 5. Compare local LazyCodex evidence with `/tmp/openai-codex-source` before choosing the target repo. Cite exact files, commands, logs, or source paths that support the routing decision.
54
+ 6. Choose the target repo:
55
+ - Use `code-yeongyu/lazycodex` when the bug is in LazyCodex integration, distribution, bundled plugin code, skills, hooks, MCP wiring, installer behavior, aliases, marketplace sync, docs, or any behavior that disappears in clean upstream Codex.
56
+ - Use `openai/codex` when the bug reproduces in clean upstream Codex without LazyCodex, or the failing behavior comes from Codex CLI core, plugin API contracts, sandboxing, approvals, config loading, or built-in tool behavior.
57
+ - If ownership remains ambiguous after evidence gathering, do not guess. Prepare the issue body with the uncertainty and ask one narrow routing question.
58
+ 7. Search for an existing issue in the selected repo before creating a new one. Search the other repo too when the ownership boundary is close:
37
59
 
38
60
  ```bash
39
- gh issue list --repo code-yeongyu/lazycodex --search "<short error or symptom>" --state open
61
+ TARGET_REPO="code-yeongyu/lazycodex" # or openai/codex
62
+ gh issue list --repo "$TARGET_REPO" --search "<short error or symptom>" --state open
40
63
  ```
41
64
 
42
- 5. If a matching open issue exists, add a comment with the new evidence instead of creating a duplicate.
43
- 6. If no matching issue exists, create the issue with `gh`.
65
+ 8. If a matching open issue exists, add a comment with the new evidence instead of creating a duplicate.
66
+ 9. Ensure the generated label exists in repositories you control:
67
+
68
+ ```bash
69
+ LABEL_ARGS=()
70
+ if gh label create lazycodex-generated --repo "$TARGET_REPO" --color "7C3AED" --description "Created by LazyCodex" --force; then
71
+ LABEL_ARGS=(--label lazycodex-generated)
72
+ else
73
+ echo "Label management unavailable for $TARGET_REPO; keeping the footer tag only."
74
+ fi
75
+ ```
76
+
77
+ If the selected repo is `openai/codex` and label management is not available, still include the footer tag in the body and continue without claiming label creation succeeded.
78
+ 10. If no matching issue exists, create the issue with `gh` and apply the `lazycodex-generated` label.
79
+ 11. Create a PR only when the user asked for a PR, the fix is already implemented on a branch, or the smallest correct fix can be safely made in the selected repo. Apply the `lazycodex-generated` label to every PR created by this skill. Otherwise create an issue with fix guidance.
80
+
81
+ ## Required Label And Footer
82
+
83
+ Every issue body, evidence comment, and PR body created by this skill must use the GitHub label `lazycodex-generated` when the artifact supports labels. It must also end with this footer. Do not put content after it.
84
+
85
+ ```markdown
86
+ ---
87
+ This issue or PR was generated by LazyCodex.
88
+ Tag: lazycodex-generated
89
+ ```
44
90
 
45
91
  ## Issue Body Template
46
92
 
@@ -57,6 +103,12 @@ Write the issue body in English and keep it direct:
57
103
  - Install method:
58
104
  - Relevant config:
59
105
 
106
+ ## Repository Decision
107
+ - Target repository:
108
+ - Why this belongs there:
109
+ - LazyCodex evidence:
110
+ - Upstream Codex source evidence from `/tmp/openai-codex-source`:
111
+
60
112
  ## Reproduction
61
113
  1. [Exact command or UI action]
62
114
  2. [Exact next step]
@@ -81,6 +133,40 @@ Write the issue body in English and keep it direct:
81
133
  - [Check that reproduces the original failure]
82
134
  - [Check that proves the fix]
83
135
  - [Regression check for adjacent LazyCodex/Codex plugin behavior]
136
+
137
+ ---
138
+ This issue or PR was generated by LazyCodex.
139
+ Tag: lazycodex-generated
140
+ ```
141
+
142
+ ## PR Body Template
143
+
144
+ Use this when a PR is the right artifact:
145
+
146
+ ```markdown
147
+ ## Summary
148
+ [One or two sentences describing the fix and the user-visible failure it resolves.]
149
+
150
+ ## Repository Decision
151
+ - Target repository:
152
+ - Why this belongs there:
153
+ - LazyCodex evidence:
154
+ - Upstream Codex source evidence from `/tmp/openai-codex-source`:
155
+
156
+ ## Root Cause
157
+ [Confirmed cause. Cite runtime evidence and source paths.]
158
+
159
+ ## Fix
160
+ [What changed and why.]
161
+
162
+ ## Verification
163
+ - [Check that reproduced the original failure before the fix]
164
+ - [Check that passes after the fix]
165
+ - [Regression check for adjacent behavior]
166
+
167
+ ---
168
+ This issue or PR was generated by LazyCodex.
169
+ Tag: lazycodex-generated
84
170
  ```
85
171
 
86
172
  ## GitHub Creation Path
@@ -90,18 +176,35 @@ Prefer `gh`:
90
176
  ```bash
91
177
  ISSUE_BODY="/tmp/lcx-report-bug-$(date +%Y%m%d-%H%M%S).md"
92
178
  $EDITOR "$ISSUE_BODY"
93
- gh issue create --repo code-yeongyu/lazycodex --title "<clear title>" --body-file "$ISSUE_BODY"
179
+ gh issue create --repo "$TARGET_REPO" --title "<clear title>" "${LABEL_ARGS[@]}" --body-file "$ISSUE_BODY"
94
180
  ```
95
181
 
96
182
  If `$EDITOR` is not usable, write the file with the available file-editing tool, then run the same `gh issue create` command.
97
183
 
98
- After creating or commenting, return the issue URL and a short summary of the evidence used.
184
+ For an existing issue:
185
+
186
+ ```bash
187
+ COMMENT_BODY="/tmp/lcx-report-bug-comment-$(date +%Y%m%d-%H%M%S).md"
188
+ gh issue comment "<issue-number>" --repo "$TARGET_REPO" --body-file "$COMMENT_BODY"
189
+ if [ "${#LABEL_ARGS[@]}" -gt 0 ]; then
190
+ gh issue edit "<issue-number>" --repo "$TARGET_REPO" --add-label lazycodex-generated
191
+ fi
192
+ ```
193
+
194
+ For a PR from a branch pushed to the selected repo or fork:
195
+
196
+ ```bash
197
+ PR_BODY="/tmp/lcx-report-bug-pr-$(date +%Y%m%d-%H%M%S).md"
198
+ gh pr create --repo "$TARGET_REPO" --title "<clear title>" "${LABEL_ARGS[@]}" --body-file "$PR_BODY"
199
+ ```
200
+
201
+ After creating or commenting, return the issue or PR URL and a short summary of the evidence used.
99
202
 
100
203
  ## Browser use fallback
101
204
 
102
205
  If `gh` is unavailable, unauthenticated, or blocked, use Browser Use against the real GitHub page:
103
206
 
104
- 1. Open `https://github.com/code-yeongyu/lazycodex/issues/new`.
207
+ 1. Open the new issue page for the selected repo: `https://github.com/code-yeongyu/lazycodex/issues/new` or `https://github.com/openai/codex/issues/new`.
105
208
  2. Fill the title and body from the template.
106
209
  3. Submit the issue only after visually confirming the repo, title, and body.
107
210
  4. Capture the resulting issue URL.
@@ -110,7 +213,7 @@ If `gh` is unavailable, unauthenticated, or blocked, use Browser Use against the
110
213
 
111
214
  If Browser Use is unavailable but a desktop browser is open and authenticated, use Computer Use:
112
215
 
113
- 1. Navigate to `https://github.com/code-yeongyu/lazycodex/issues/new`.
216
+ 1. Navigate to the new issue page for the selected repo: `https://github.com/code-yeongyu/lazycodex/issues/new` or `https://github.com/openai/codex/issues/new`.
114
217
  2. Fill the title and body.
115
218
  3. Verify the target repository and final text before submission.
116
219
  4. Submit and capture the issue URL.
@@ -124,4 +227,6 @@ Do not file:
124
227
  - a vague issue without reproduction steps
125
228
  - an issue that claims a root cause not supported by runtime evidence
126
229
  - a duplicate when commenting on an existing issue is enough
127
- - a fix PR unless the user separately asks for one
230
+ - an upstream Codex issue without checking `/tmp/openai-codex-source`
231
+ - a LazyCodex issue when the bug is proven to reproduce in clean upstream Codex
232
+ - a fix PR without a concrete branch, implemented fix, and verification result
@@ -1,9 +1,11 @@
1
1
  interface:
2
2
  display_name: "lcx-report-bug (omo)"
3
- short_description: "Report LazyCodex bugs with debugging evidence"
3
+ short_description: "Route LazyCodex or Codex bugs with source evidence"
4
4
  search_terms:
5
5
  - "lcx-report-bug"
6
6
  - "lazycodex bug"
7
7
  - "lazycodex issue"
8
8
  - "omo-codex bug"
9
- default_prompt: "Use $lcx-report-bug to investigate this LazyCodex bug and file a clear issue with reproduction, root cause, and fix guidance."
9
+ - "openai codex bug"
10
+ - "codex upstream issue"
11
+ default_prompt: "Use $lcx-report-bug to investigate this LazyCodex or Codex bug, compare LazyCodex evidence with /tmp openai/codex source, choose the correct GitHub repo, and file an issue or PR with reproduction, root cause, fix guidance, and the lazycodex-generated label and footer."