@skj1724/oh-my-opencode 3.11.8 → 3.17.4

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 (366) hide show
  1. package/README.ja.md +8 -4
  2. package/README.ko.md +8 -4
  3. package/README.md +20 -10
  4. package/README.ru.md +8 -4
  5. package/README.zh-cn.md +8 -4
  6. package/bin/oh-my-opencode.js +11 -0
  7. package/bin/platform.js +13 -13
  8. package/bin/platform.test.ts +15 -0
  9. package/dist/agents/atlas/agent.d.ts +1 -1
  10. package/dist/agents/atlas/default-prompt-sections.d.ts +6 -0
  11. package/dist/agents/atlas/default.d.ts +0 -9
  12. package/dist/agents/atlas/gemini-prompt-sections.d.ts +6 -0
  13. package/dist/agents/atlas/gpt-prompt-sections.d.ts +6 -0
  14. package/dist/agents/atlas/gpt.d.ts +0 -9
  15. package/dist/agents/atlas/shared-prompt.d.ts +9 -0
  16. package/dist/agents/dynamic-agent-category-skills-guide.d.ts +2 -0
  17. package/dist/agents/dynamic-agent-core-sections.d.ts +17 -0
  18. package/dist/agents/dynamic-agent-policy-sections.d.ts +6 -0
  19. package/dist/agents/dynamic-agent-prompt-builder.d.ts +5 -35
  20. package/dist/agents/dynamic-agent-prompt-types.d.ts +20 -0
  21. package/dist/agents/dynamic-agent-tool-categorization.d.ts +3 -0
  22. package/dist/agents/gpt-apply-patch-guard.d.ts +2 -0
  23. package/dist/agents/hephaestus/agent.d.ts +1 -1
  24. package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +1 -2
  25. package/dist/agents/hephaestus/gpt-5-4.d.ts +22 -1
  26. package/dist/agents/hephaestus/gpt.d.ts +1 -1
  27. package/dist/agents/metis.d.ts +9 -9
  28. package/dist/agents/momus.d.ts +2 -2
  29. package/dist/agents/prometheus/behavioral-summary.d.ts +1 -1
  30. package/dist/agents/prometheus/identity-constraints.d.ts +4 -3
  31. package/dist/agents/prometheus/interview-mode.d.ts +3 -3
  32. package/dist/agents/prometheus/plan-generation.d.ts +4 -4
  33. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  34. package/dist/agents/sisyphus/default.d.ts +2 -2
  35. package/dist/agents/sisyphus/gemini.d.ts +10 -10
  36. package/dist/agents/sisyphus/gpt-5-4.d.ts +18 -18
  37. package/dist/agents/sisyphus/index.d.ts +1 -1
  38. package/dist/agents/sisyphus.d.ts +1 -1
  39. package/dist/agents/types.d.ts +1 -0
  40. package/dist/cli/config-manager/backup-config.d.ts +6 -0
  41. package/dist/cli/config-manager/version-compatibility.d.ts +9 -0
  42. package/dist/cli/config-manager.d.ts +4 -0
  43. package/dist/cli/doctor/checks/system.d.ts +15 -2
  44. package/dist/cli/doctor/constants.d.ts +1 -1
  45. package/dist/cli/doctor/spawn-with-timeout.d.ts +8 -0
  46. package/dist/cli/index.js +27570 -18945
  47. package/dist/cli/install-validators.d.ts +1 -0
  48. package/dist/cli/mcp-oauth/login.d.ts +6 -1
  49. package/dist/cli/minimum-opencode-version.d.ts +1 -0
  50. package/dist/cli/model-fallback-types.d.ts +4 -0
  51. package/dist/cli/provider-model-id-transform.d.ts +1 -1
  52. package/dist/cli/run/continuation-state.d.ts +2 -1
  53. package/dist/cli/run/event-state.d.ts +0 -2
  54. package/dist/cli/run/types.d.ts +0 -1
  55. package/dist/cli/types.d.ts +4 -0
  56. package/dist/config/schema/agent-definitions.d.ts +3 -0
  57. package/dist/config/schema/agent-names.d.ts +2 -0
  58. package/dist/config/schema/agent-overrides.d.ts +330 -15
  59. package/dist/config/schema/background-task.d.ts +2 -1
  60. package/dist/config/schema/categories.d.ts +44 -2
  61. package/dist/config/schema/commands.d.ts +1 -0
  62. package/dist/config/schema/experimental.d.ts +1 -0
  63. package/dist/config/schema/fallback-models.d.ts +67 -1
  64. package/dist/config/schema/hooks.d.ts +3 -0
  65. package/dist/config/schema/oh-my-opencode-config.d.ts +345 -17
  66. package/dist/config/schema/sisyphus-agent.d.ts +1 -0
  67. package/dist/config/schema/tmux.d.ts +11 -0
  68. package/dist/create-hooks.d.ts +8 -0
  69. package/dist/create-managers.d.ts +16 -0
  70. package/dist/create-runtime-tmux-config.d.ts +10 -0
  71. package/dist/create-tools.d.ts +3 -2
  72. package/dist/features/background-agent/abort-with-timeout.d.ts +2 -0
  73. package/dist/features/background-agent/background-task-notification-template.d.ts +10 -4
  74. package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +5 -2
  75. package/dist/features/background-agent/constants.d.ts +1 -0
  76. package/dist/features/background-agent/fallback-retry-handler.d.ts +1 -1
  77. package/dist/features/background-agent/index.d.ts +2 -0
  78. package/dist/features/background-agent/manager.d.ts +10 -0
  79. package/dist/features/background-agent/process-cleanup.d.ts +1 -1
  80. package/dist/features/background-agent/session-existence.d.ts +3 -0
  81. package/dist/features/background-agent/spawner.d.ts +3 -0
  82. package/dist/features/background-agent/subagent-spawn-limits.d.ts +1 -8
  83. package/dist/features/background-agent/task-poller.d.ts +2 -0
  84. package/dist/features/background-agent/types.d.ts +2 -0
  85. package/dist/features/background-agent/wait-for-task-session.d.ts +17 -0
  86. package/dist/features/boulder-state/storage.d.ts +8 -1
  87. package/dist/features/boulder-state/types.d.ts +1 -0
  88. package/dist/features/builtin-commands/commands.d.ts +5 -1
  89. package/dist/features/builtin-commands/templates/handoff.d.ts +1 -1
  90. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
  91. package/dist/features/builtin-commands/templates/ralph-loop.d.ts +3 -3
  92. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -0
  93. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  94. package/dist/features/builtin-commands/types.d.ts +1 -1
  95. package/dist/features/builtin-skills/skills/ai-slop-remover.d.ts +2 -0
  96. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -0
  97. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -0
  98. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -0
  99. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -0
  100. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -0
  101. package/dist/features/builtin-skills/skills/index.d.ts +2 -0
  102. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +1 -1
  103. package/dist/features/builtin-skills/skills/review-work.d.ts +2 -0
  104. package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +3 -0
  105. package/dist/features/claude-code-agent-loader/index.d.ts +3 -0
  106. package/dist/features/claude-code-agent-loader/json-agent-loader.d.ts +2 -0
  107. package/dist/features/claude-code-agent-loader/loader.d.ts +2 -0
  108. package/dist/features/claude-code-agent-loader/opencode-config-agents-reader.d.ts +2 -0
  109. package/dist/features/claude-code-agent-loader/types.d.ts +9 -1
  110. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
  111. package/dist/features/claude-code-mcp-loader/env-expander.d.ts +5 -2
  112. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
  113. package/dist/features/claude-code-mcp-loader/scope-filter.d.ts +2 -0
  114. package/dist/features/claude-code-mcp-loader/types.d.ts +8 -4
  115. package/dist/features/claude-code-plugin-loader/discovery.d.ts +2 -1
  116. package/dist/features/claude-code-plugin-loader/loader.d.ts +16 -0
  117. package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +2 -0
  118. package/dist/features/claude-code-plugin-loader/types.d.ts +21 -0
  119. package/dist/features/claude-code-session-state/state.d.ts +3 -0
  120. package/dist/features/context-injector/collector.d.ts +1 -0
  121. package/dist/features/mcp-oauth/provider.d.ts +1 -0
  122. package/dist/features/mcp-oauth/refresh-mutex.d.ts +26 -0
  123. package/dist/features/opencode-skill-loader/async-loader.d.ts +2 -2
  124. package/dist/features/skill-mcp-manager/connection.d.ts +3 -4
  125. package/dist/features/skill-mcp-manager/error-redaction.d.ts +10 -0
  126. package/dist/features/skill-mcp-manager/http-client.d.ts +17 -3
  127. package/dist/features/skill-mcp-manager/manager.d.ts +5 -3
  128. package/dist/features/skill-mcp-manager/oauth-handler.d.ts +12 -4
  129. package/dist/features/skill-mcp-manager/stdio-client.d.ts +16 -3
  130. package/dist/features/skill-mcp-manager/types.d.ts +25 -6
  131. package/dist/features/team-mode/index.d.ts +2 -0
  132. package/dist/features/team-mode/team-worktree/cleanup.d.ts +3 -0
  133. package/dist/features/team-mode/team-worktree/index.d.ts +2 -0
  134. package/dist/features/team-mode/team-worktree/manager.d.ts +15 -0
  135. package/dist/features/team-mode/types.d.ts +210 -0
  136. package/dist/features/tmux-subagent/manager.d.ts +16 -13
  137. package/dist/features/tmux-subagent/polling-manager.d.ts +5 -0
  138. package/dist/features/tmux-subagent/types.d.ts +2 -0
  139. package/dist/features/tool-metadata-store/index.d.ts +7 -0
  140. package/dist/features/tool-metadata-store/publish-tool-metadata.d.ts +9 -0
  141. package/dist/features/tool-metadata-store/recover-tool-metadata.d.ts +3 -0
  142. package/dist/features/tool-metadata-store/resolve-tool-call-id.d.ts +6 -0
  143. package/dist/features/tool-metadata-store/task-metadata-contract.d.ts +10 -0
  144. package/dist/hooks/agent-usage-reminder/constants.d.ts +1 -1
  145. package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +4 -1
  146. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.d.ts +10 -0
  147. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.d.ts +29 -0
  148. package/dist/hooks/anthropic-context-window-limit-recovery/session-timeout-map.d.ts +2 -0
  149. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +2 -0
  150. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +1 -0
  151. package/dist/hooks/atlas/background-launch-session-tracking.d.ts +11 -0
  152. package/dist/hooks/atlas/boulder-continuation-injector.d.ts +2 -1
  153. package/dist/hooks/atlas/session-last-agent.d.ts +10 -1
  154. package/dist/hooks/atlas/subagent-session-id.d.ts +1 -0
  155. package/dist/hooks/atlas/system-reminder-templates.d.ts +2 -2
  156. package/dist/hooks/atlas/task-context.d.ts +7 -0
  157. package/dist/hooks/atlas/types.d.ts +2 -0
  158. package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
  159. package/dist/hooks/auto-slash-command/hook.d.ts +1 -0
  160. package/dist/hooks/auto-update-checker/checker/sync-package-json.d.ts +1 -1
  161. package/dist/hooks/auto-update-checker/constants.d.ts +19 -3
  162. package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +29 -1
  163. package/dist/hooks/auto-update-checker/hook.d.ts +22 -1
  164. package/dist/hooks/bash-file-read-guard.d.ts +2 -0
  165. package/dist/hooks/claude-code-hooks/claude-code-hooks-hook.d.ts +1 -0
  166. package/dist/hooks/claude-code-hooks/config-loader.d.ts +1 -0
  167. package/dist/hooks/claude-code-hooks/config.d.ts +1 -0
  168. package/dist/hooks/claude-code-hooks/handlers/session-event-handler.d.ts +3 -1
  169. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  170. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +2 -0
  171. package/dist/hooks/claude-code-hooks/transcript.d.ts +1 -3
  172. package/dist/hooks/comment-checker/cli-runner.d.ts +4 -1
  173. package/dist/hooks/comment-checker/hook.d.ts +1 -0
  174. package/dist/hooks/comment-checker/pending-calls.d.ts +1 -0
  175. package/dist/hooks/directory-agents-injector/hook.d.ts +7 -7
  176. package/dist/hooks/directory-readme-injector/hook.d.ts +7 -7
  177. package/dist/hooks/edit-error-recovery/hook.d.ts +1 -1
  178. package/dist/hooks/index.d.ts +4 -1
  179. package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
  180. package/dist/hooks/keyword-detector/hook.d.ts +2 -1
  181. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +3 -4
  182. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +11 -12
  183. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +4 -5
  184. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -2
  185. package/dist/hooks/legacy-plugin-toast/auto-migrate-runner.d.ts +2 -0
  186. package/dist/hooks/legacy-plugin-toast/auto-migrate.d.ts +7 -0
  187. package/dist/hooks/legacy-plugin-toast/hook.d.ts +18 -0
  188. package/dist/hooks/legacy-plugin-toast/index.d.ts +1 -0
  189. package/dist/hooks/legacy-plugin-toast/plugin-entry-migrator.d.ts +1 -0
  190. package/dist/hooks/model-fallback/chat-message-fallback-handler.d.ts +23 -0
  191. package/dist/hooks/model-fallback/controller-accessor.d.ts +8 -0
  192. package/dist/hooks/model-fallback/fallback-state-controller.d.ts +26 -0
  193. package/dist/hooks/model-fallback/hook.d.ts +21 -16
  194. package/dist/hooks/model-fallback/index.d.ts +2 -0
  195. package/dist/hooks/model-fallback/next-fallback.d.ts +14 -0
  196. package/dist/hooks/preemptive-compaction-trigger.d.ts +13 -0
  197. package/dist/hooks/preemptive-compaction-types.d.ts +53 -0
  198. package/dist/hooks/preemptive-compaction.d.ts +3 -15
  199. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +11 -0
  200. package/dist/hooks/ralph-loop/constants.d.ts +1 -0
  201. package/dist/hooks/ralph-loop/oracle-verification-detector.d.ts +8 -0
  202. package/dist/hooks/read-image-resizer/image-resizer.d.ts +3 -1
  203. package/dist/hooks/read-image-resizer/png-fallback-resizer.d.ts +2 -0
  204. package/dist/hooks/rules-injector/constants.d.ts +1 -0
  205. package/dist/hooks/rules-injector/finder.d.ts +1 -1
  206. package/dist/hooks/rules-injector/hook.d.ts +2 -0
  207. package/dist/hooks/rules-injector/injector.d.ts +14 -0
  208. package/dist/hooks/rules-injector/rule-file-finder.d.ts +9 -1
  209. package/dist/hooks/runtime-fallback/auto-retry-signal.d.ts +4 -0
  210. package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -5
  211. package/dist/hooks/runtime-fallback/fallback-models.d.ts +1 -1
  212. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +5 -1
  213. package/dist/hooks/session-notification-event-properties.d.ts +5 -0
  214. package/dist/hooks/session-recovery/types.d.ts +2 -0
  215. package/dist/hooks/start-work/context-info-builder.d.ts +12 -0
  216. package/dist/hooks/start-work/start-work-hook.d.ts +6 -0
  217. package/dist/hooks/start-work/worktree-block.d.ts +1 -0
  218. package/dist/hooks/todo-continuation-enforcer/pending-question-detection.d.ts +1 -1
  219. package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +2 -2
  220. package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +4 -3
  221. package/dist/hooks/todo-continuation-enforcer/token-limit-detection.d.ts +4 -0
  222. package/dist/hooks/todo-continuation-enforcer/types.d.ts +14 -0
  223. package/dist/hooks/todo-description-override/description.d.ts +1 -1
  224. package/dist/hooks/tool-pair-validator/hook.d.ts +28 -0
  225. package/dist/hooks/tool-pair-validator/index.d.ts +1 -0
  226. package/dist/hooks/unstable-agent-babysitter/task-message-analyzer.d.ts +1 -0
  227. package/dist/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.d.ts +2 -0
  228. package/dist/hooks/write-existing-file-guard/hook.d.ts +12 -0
  229. package/dist/hooks/write-existing-file-guard/session-read-permissions.d.ts +3 -0
  230. package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +15 -0
  231. package/dist/index.d.ts +3 -3
  232. package/dist/index.js +84801 -95412
  233. package/dist/mcp/websearch.d.ts +2 -2
  234. package/dist/oh-my-opencode.schema.json +1059 -8
  235. package/dist/openclaw/config.d.ts +1 -1
  236. package/dist/openclaw/dispatcher.d.ts +9 -13
  237. package/dist/openclaw/gateway-url-validation.d.ts +1 -0
  238. package/dist/openclaw/reply-listener-discord.d.ts +4 -0
  239. package/dist/openclaw/reply-listener-injection.d.ts +10 -0
  240. package/dist/openclaw/reply-listener-log.d.ts +2 -0
  241. package/dist/openclaw/reply-listener-paths.d.ts +7 -0
  242. package/dist/openclaw/reply-listener-process.d.ts +4 -0
  243. package/dist/openclaw/reply-listener-spawn.d.ts +5 -0
  244. package/dist/openclaw/reply-listener-startup.d.ts +12 -0
  245. package/dist/openclaw/reply-listener-state.d.ts +29 -0
  246. package/dist/openclaw/reply-listener-telegram.d.ts +4 -0
  247. package/dist/openclaw/reply-listener.d.ts +5 -18
  248. package/dist/openclaw/runtime-dispatch.d.ts +17 -0
  249. package/dist/openclaw/types.d.ts +4 -0
  250. package/dist/plugin/chat-params.d.ts +1 -0
  251. package/dist/plugin/command-execute-before.d.ts +19 -0
  252. package/dist/plugin/hooks/create-core-hooks.d.ts +5 -0
  253. package/dist/plugin/hooks/create-session-hooks.d.ts +4 -1
  254. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +2 -1
  255. package/dist/plugin/hooks/create-transform-hooks.d.ts +4 -1
  256. package/dist/plugin/tool-registry.d.ts +26 -1
  257. package/dist/plugin/types.d.ts +1 -0
  258. package/dist/plugin-handlers/agent-priority-order.d.ts +11 -0
  259. package/dist/shared/agent-display-names.d.ts +23 -2
  260. package/dist/shared/agent-tool-restrictions.d.ts +0 -5
  261. package/dist/shared/archive-entry-validator.d.ts +6 -0
  262. package/dist/shared/background-output-consumption.d.ts +5 -0
  263. package/dist/shared/compaction-marker.d.ts +13 -0
  264. package/dist/shared/connected-providers-cache.d.ts +2 -1
  265. package/dist/shared/contains-path.d.ts +2 -0
  266. package/dist/shared/external-plugin-detector.d.ts +14 -0
  267. package/dist/shared/index.d.ts +9 -0
  268. package/dist/shared/internal-initiator-marker.d.ts +1 -0
  269. package/dist/shared/is-abort-error.d.ts +1 -0
  270. package/dist/shared/json-file-cache-store.d.ts +16 -0
  271. package/dist/shared/jsonc-parser.d.ts +1 -0
  272. package/dist/shared/legacy-plugin-warning.d.ts +7 -0
  273. package/dist/shared/load-opencode-plugins.d.ts +1 -0
  274. package/dist/shared/log-legacy-plugin-startup-warning.d.ts +10 -0
  275. package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
  276. package/dist/shared/migrate-legacy-plugin-entry.d.ts +1 -0
  277. package/dist/shared/migration/migrations-sidecar.d.ts +41 -0
  278. package/dist/shared/model-capabilities/bundled-snapshot.d.ts +2 -0
  279. package/dist/shared/model-capabilities/get-model-capabilities.d.ts +2 -0
  280. package/dist/shared/model-capabilities/index.d.ts +3 -0
  281. package/dist/shared/model-capabilities/runtime-model-readers.d.ts +11 -0
  282. package/dist/shared/{model-capabilities.d.ts → model-capabilities/types.d.ts} +35 -32
  283. package/dist/shared/model-suggestion-retry.d.ts +0 -9
  284. package/dist/shared/opencode-provider-auth.d.ts +3 -0
  285. package/dist/shared/parse-tools-config.d.ts +6 -0
  286. package/dist/shared/permission-compat.d.ts +1 -1
  287. package/dist/shared/plugin-entry-migrator.d.ts +3 -0
  288. package/dist/shared/plugin-identity.d.ts +6 -3
  289. package/dist/shared/posthog-activity-state.d.ts +8 -0
  290. package/dist/shared/posthog.d.ts +14 -0
  291. package/dist/shared/resolve-agent-definition-paths.d.ts +1 -0
  292. package/dist/shared/ripgrep-cli.d.ts +8 -0
  293. package/dist/shared/session-category-registry.d.ts +0 -24
  294. package/dist/shared/session-cursor.d.ts +6 -0
  295. package/dist/shared/session-prompt-params-state.d.ts +1 -0
  296. package/dist/shared/shell-env.d.ts +6 -2
  297. package/dist/shared/skill-path-resolver.d.ts +0 -8
  298. package/dist/shared/task-system-enabled.d.ts +6 -0
  299. package/dist/shared/tmux/tmux-utils/server-health.d.ts +1 -0
  300. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +3 -0
  301. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +3 -0
  302. package/dist/shared/tmux/tmux-utils.d.ts +3 -1
  303. package/dist/shared/write-file-atomically.d.ts +1 -0
  304. package/dist/shared/zip-entry-listing/powershell-zip-entry-listing.d.ts +4 -0
  305. package/dist/shared/zip-entry-listing/python-zip-entry-listing.d.ts +3 -0
  306. package/dist/shared/zip-entry-listing/read-zip-symlink-target.d.ts +1 -0
  307. package/dist/shared/zip-entry-listing/tar-zip-entry-listing.d.ts +3 -0
  308. package/dist/shared/zip-entry-listing/zipinfo-zip-entry-listing.d.ts +4 -0
  309. package/dist/shared/zip-entry-listing.d.ts +4 -0
  310. package/dist/testing/module-mock-lifecycle.d.ts +21 -0
  311. package/dist/tools/background-task/constants.d.ts +3 -3
  312. package/dist/tools/call-omo-agent/agent-resolver.d.ts +17 -0
  313. package/dist/tools/call-omo-agent/background-executor.d.ts +2 -1
  314. package/dist/tools/call-omo-agent/constants.d.ts +1 -1
  315. package/dist/tools/call-omo-agent/sync-executor.d.ts +4 -4
  316. package/dist/tools/call-omo-agent/tools.d.ts +2 -1
  317. package/dist/tools/delegate-task/anthropic-categories.d.ts +2 -0
  318. package/dist/tools/delegate-task/builtin-categories.d.ts +4 -0
  319. package/dist/tools/delegate-task/builtin-category-definition.d.ts +7 -0
  320. package/dist/tools/delegate-task/constants.d.ts +1 -12
  321. package/dist/tools/delegate-task/delegated-model-config.d.ts +3 -0
  322. package/dist/tools/delegate-task/executor-types.d.ts +4 -1
  323. package/dist/tools/delegate-task/fallback-entry-resolution.d.ts +12 -0
  324. package/dist/tools/delegate-task/fallback-entry-settings.d.ts +7 -0
  325. package/dist/tools/delegate-task/google-categories.d.ts +2 -0
  326. package/dist/tools/delegate-task/kimi-categories.d.ts +2 -0
  327. package/dist/tools/delegate-task/openai-categories.d.ts +2 -0
  328. package/dist/tools/delegate-task/prompt-builder.d.ts +1 -1
  329. package/dist/tools/delegate-task/resolve-metadata-model.d.ts +8 -0
  330. package/dist/tools/delegate-task/subagent-discovery.d.ts +15 -0
  331. package/dist/tools/delegate-task/sync-continuation.d.ts +2 -2
  332. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -0
  333. package/dist/tools/delegate-task/sync-task-fallback.d.ts +12 -0
  334. package/dist/tools/delegate-task/task-id.d.ts +2 -0
  335. package/dist/tools/delegate-task/tool-argument-preparation.d.ts +2 -0
  336. package/dist/tools/delegate-task/tool-description.d.ts +9 -0
  337. package/dist/tools/delegate-task/types.d.ts +5 -2
  338. package/dist/tools/glob/constants.d.ts +1 -1
  339. package/dist/tools/grep/cli.d.ts +3 -2
  340. package/dist/tools/grep/constants.d.ts +0 -9
  341. package/dist/tools/hashline-edit/tool-description.d.ts +1 -1
  342. package/dist/tools/look-at/constants.d.ts +1 -1
  343. package/dist/tools/look-at/look-at-input-preparer.d.ts +22 -0
  344. package/dist/tools/look-at/look-at-prompt.d.ts +2 -0
  345. package/dist/tools/look-at/look-at-session-runner.d.ts +12 -0
  346. package/dist/tools/lsp/infer-extension.d.ts +1 -0
  347. package/dist/tools/session-manager/file-storage.d.ts +8 -0
  348. package/dist/tools/session-manager/sdk-storage.d.ts +8 -0
  349. package/dist/tools/session-manager/sdk-unavailable.d.ts +1 -0
  350. package/dist/tools/session-manager/storage.d.ts +1 -1
  351. package/dist/tools/session-manager/tools.d.ts +19 -1
  352. package/dist/tools/skill/constants.d.ts +2 -2
  353. package/dist/tools/skill/description-formatter.d.ts +3 -0
  354. package/dist/tools/skill/mcp-capability-formatter.d.ts +3 -0
  355. package/dist/tools/skill/native-skills.d.ts +12 -0
  356. package/dist/tools/skill/scope-priority.d.ts +4 -0
  357. package/dist/tools/skill/skill-body.d.ts +2 -0
  358. package/dist/tools/skill/skill-matcher.d.ts +5 -0
  359. package/dist/tools/skill/types.d.ts +30 -2
  360. package/dist/tools/skill-mcp/parse-skill-mcp-arguments.d.ts +1 -0
  361. package/dist/tools/skill-mcp/tools.d.ts +1 -1
  362. package/package.json +26 -25
  363. package/postinstall.mjs +75 -1
  364. package/dist/hooks/openclaw.d.ts +0 -11
  365. package/dist/plugin-dispose.d.ts +0 -10
  366. /package/dist/{tools/delegate-task → shared}/model-string-parser.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import type { OpenClawConfig, OpenClawGateway } from "./types";
2
+ export { validateGatewayUrl } from "./gateway-url-validation";
2
3
  export declare function normalizeReplyListenerConfig(config: OpenClawConfig): OpenClawConfig;
3
4
  export declare function resolveGateway(config: OpenClawConfig, event: string): {
4
5
  gatewayName: string;
5
6
  gateway: OpenClawGateway;
6
7
  instruction: string;
7
8
  } | null;
8
- export declare function validateGatewayUrl(url: string): boolean;
@@ -1,16 +1,12 @@
1
- import type { OpenClawGateway } from "./types";
2
- export declare function validateGatewayUrl(url: string): boolean;
1
+ import type { OpenClawGateway, WakeResult } from "./types";
3
2
  export declare function interpolateInstruction(template: string, variables: Record<string, string | undefined>): string;
4
3
  export declare function shellEscapeArg(value: string): string;
5
4
  export declare function resolveCommandTimeoutMs(gatewayTimeout?: number, envTimeoutRaw?: string | undefined): number;
6
- export declare function wakeGateway(gatewayName: string, gatewayConfig: OpenClawGateway, payload: unknown): Promise<{
7
- gateway: string;
8
- success: boolean;
9
- error?: string;
10
- statusCode?: number;
11
- }>;
12
- export declare function wakeCommandGateway(gatewayName: string, gatewayConfig: OpenClawGateway, variables: Record<string, string | undefined>): Promise<{
13
- gateway: string;
14
- success: boolean;
15
- error?: string;
16
- }>;
5
+ export declare function wakeGateway(gatewayName: string, gatewayConfig: OpenClawGateway, payload: unknown): Promise<WakeResult>;
6
+ export declare function wakeCommandGateway(gatewayName: string, gatewayConfig: OpenClawGateway, variables: Record<string, string | undefined>): Promise<WakeResult>;
7
+ type KillableProcess = {
8
+ pid?: number;
9
+ kill: (signal?: NodeJS.Signals) => void;
10
+ };
11
+ export declare function terminateCommandProcess(proc: KillableProcess, signal: NodeJS.Signals): void;
12
+ export {};
@@ -0,0 +1 @@
1
+ export declare function validateGatewayUrl(url: string): boolean;
@@ -0,0 +1,4 @@
1
+ import { ReplyListenerRateLimiter } from "./reply-listener-injection";
2
+ import { type ReplyListenerDaemonState } from "./reply-listener-state";
3
+ import type { OpenClawConfig } from "./types";
4
+ export declare function pollDiscordReplies(config: OpenClawConfig, state: ReplyListenerDaemonState, rateLimiter: ReplyListenerRateLimiter): Promise<void>;
@@ -0,0 +1,10 @@
1
+ import type { OpenClawConfig } from "./types";
2
+ export declare function sanitizeReplyInput(text: string): string;
3
+ export declare class ReplyListenerRateLimiter {
4
+ private readonly maxPerMinute;
5
+ private readonly timestamps;
6
+ private readonly windowMs;
7
+ constructor(maxPerMinute: number);
8
+ canProceed(): boolean;
9
+ }
10
+ export declare function injectReplyIntoPane(paneId: string, text: string, platform: string, config: OpenClawConfig): Promise<boolean>;
@@ -0,0 +1,2 @@
1
+ export declare function writeSecureReplyListenerFile(filePath: string, content: string): void;
2
+ export declare function logReplyListenerMessage(message: string): void;
@@ -0,0 +1,7 @@
1
+ export declare const REPLY_LISTENER_SECURE_FILE_MODE = 384;
2
+ export declare function getReplyListenerStateDir(): string;
3
+ export declare function getReplyListenerPidFilePath(): string;
4
+ export declare function getReplyListenerStateFilePath(): string;
5
+ export declare function getReplyListenerConfigFilePath(): string;
6
+ export declare function getReplyListenerLogFilePath(): string;
7
+ export declare function ensureReplyListenerStateDir(): void;
@@ -0,0 +1,4 @@
1
+ export declare const REPLY_LISTENER_DAEMON_IDENTITY_MARKER = "--openclaw-reply-listener-daemon";
2
+ export declare function createReplyListenerDaemonEnv(extraEnv: Record<string, string>): Record<string, string>;
3
+ export declare function isReplyListenerProcessRunning(pid: number): boolean;
4
+ export declare function isReplyListenerDaemonProcess(pid: number): Promise<boolean>;
@@ -0,0 +1,5 @@
1
+ export interface ReplyListenerSpawnProcess {
2
+ pid: number | undefined;
3
+ unref(): void;
4
+ }
5
+ export declare function spawnReplyListenerDaemon(daemonScript: string, startupToken: string): ReplyListenerSpawnProcess;
@@ -0,0 +1,12 @@
1
+ import type { ReplyListenerDaemonState } from "./reply-listener-state";
2
+ interface WaitForReplyListenerReadyOptions {
3
+ pid: number;
4
+ startupToken: string;
5
+ timeoutMs: number;
6
+ readState: () => ReplyListenerDaemonState | null;
7
+ sleep: (ms: number) => Promise<void>;
8
+ }
9
+ export declare function createReplyListenerStartupToken(): string;
10
+ export declare function getReplyListenerStartupTimeoutMs(): number;
11
+ export declare function waitForReplyListenerReady(options: WaitForReplyListenerReadyOptions): Promise<ReplyListenerDaemonState | null>;
12
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { OpenClawConfig } from "./types";
2
+ export declare const REPLY_LISTENER_STARTUP_TOKEN_ENV = "OMO_OPENCLAW_REPLY_LISTENER_STARTUP_TOKEN";
3
+ export interface ReplyListenerDaemonState {
4
+ isRunning: boolean;
5
+ pid: number | null;
6
+ startedAt: string;
7
+ startupToken: string | null;
8
+ configSignature: string | null;
9
+ lastPollAt: string | null;
10
+ telegramLastUpdateId: number | null;
11
+ discordLastMessageId: string | null;
12
+ lastDiscordMessageId: string | null;
13
+ messagesSeen: number;
14
+ messagesInjected: number;
15
+ errors: number;
16
+ lastError?: string;
17
+ }
18
+ export declare function createPendingReplyListenerState(startupToken: string): ReplyListenerDaemonState;
19
+ export declare function readReplyListenerDaemonState(): ReplyListenerDaemonState | null;
20
+ export declare function writeReplyListenerDaemonState(state: ReplyListenerDaemonState): void;
21
+ export declare function readReplyListenerDaemonConfig(): OpenClawConfig | null;
22
+ export declare function writeReplyListenerDaemonConfig(config: OpenClawConfig): void;
23
+ export declare function readReplyListenerPid(): number | null;
24
+ export declare function writeReplyListenerPid(pid: number): void;
25
+ export declare function removeReplyListenerPid(): void;
26
+ export declare function getReplyListenerStartupTokenFromEnv(): string | null;
27
+ export declare function recordReplyListenerPoll(state: ReplyListenerDaemonState, pid: number): void;
28
+ export declare function recordSeenDiscordMessage(state: ReplyListenerDaemonState, messageId: string): void;
29
+ export declare function markReplyListenerStopped(state: ReplyListenerDaemonState | null, error?: string): ReplyListenerDaemonState;
@@ -0,0 +1,4 @@
1
+ import { ReplyListenerRateLimiter } from "./reply-listener-injection";
2
+ import { type ReplyListenerDaemonState } from "./reply-listener-state";
3
+ import type { OpenClawConfig } from "./types";
4
+ export declare function pollTelegramReplies(config: OpenClawConfig, state: ReplyListenerDaemonState, rateLimiter: ReplyListenerRateLimiter): Promise<void>;
@@ -1,31 +1,18 @@
1
+ import { logReplyListenerMessage } from "./reply-listener-log";
2
+ import { type ReplyListenerDaemonState } from "./reply-listener-state";
1
3
  import type { OpenClawConfig } from "./types";
2
- export declare const DAEMON_IDENTITY_MARKER = "--openclaw-reply-listener-daemon";
3
- export declare function logReplyListenerMessage(message: string): void;
4
- interface DaemonState {
5
- isRunning: boolean;
6
- pid: number | null;
7
- startedAt: string;
8
- lastPollAt: string | null;
9
- telegramLastUpdateId: number | null;
10
- discordLastMessageId: string | null;
11
- messagesInjected: number;
12
- errors: number;
13
- lastError?: string;
14
- }
15
- export declare function isReplyListenerProcess(pid: number): Promise<boolean>;
16
4
  export declare function isDaemonRunning(): Promise<boolean>;
17
- export declare function sanitizeReplyInput(text: string): string;
18
5
  export declare function pollLoop(): Promise<void>;
19
6
  export declare function startReplyListener(config: OpenClawConfig): Promise<{
20
7
  success: boolean;
21
8
  message: string;
22
- state?: DaemonState;
9
+ state?: ReplyListenerDaemonState;
23
10
  error?: string;
24
11
  }>;
25
12
  export declare function stopReplyListener(): Promise<{
26
13
  success: boolean;
27
14
  message: string;
28
- state?: DaemonState;
15
+ state?: ReplyListenerDaemonState;
29
16
  error?: string;
30
17
  }>;
31
- export {};
18
+ export { logReplyListenerMessage };
@@ -0,0 +1,17 @@
1
+ import type { OpenClawConfig, WakeResult } from "./types";
2
+ interface DispatchOpenClawContext {
3
+ sessionId?: string;
4
+ projectPath?: string;
5
+ tmuxPaneId?: string;
6
+ tmuxSession?: string;
7
+ replyChannel?: string;
8
+ replyTarget?: string;
9
+ replyThread?: string;
10
+ }
11
+ interface DispatchOpenClawEventParams {
12
+ config: OpenClawConfig;
13
+ rawEvent: string;
14
+ context: DispatchOpenClawContext;
15
+ }
16
+ export declare function dispatchOpenClawEvent(params: DispatchOpenClawEventParams): Promise<WakeResult | null>;
17
+ export {};
@@ -35,4 +35,8 @@ export interface WakeResult {
35
35
  success: boolean;
36
36
  error?: string;
37
37
  statusCode?: number;
38
+ messageId?: string;
39
+ platform?: string;
40
+ channelId?: string;
41
+ threadId?: string;
38
42
  }
@@ -21,6 +21,7 @@ export type ChatParamsOutput = {
21
21
  temperature?: number;
22
22
  topP?: number;
23
23
  topK?: number;
24
+ maxOutputTokens?: number;
24
25
  options: Record<string, unknown>;
25
26
  };
26
27
  export declare function createChatParamsHandler(args: {
@@ -0,0 +1,19 @@
1
+ import type { CreatedHooks } from "../create-hooks";
2
+ type CommandExecuteBeforeInput = {
3
+ command: string;
4
+ sessionID: string;
5
+ arguments: string;
6
+ };
7
+ type CommandExecuteBeforeOutput = {
8
+ parts: Array<{
9
+ type: string;
10
+ text?: string;
11
+ [key: string]: unknown;
12
+ }>;
13
+ message?: Record<string, unknown>;
14
+ };
15
+ declare const NATIVE_LOOP_TRIGGERED_FLAG = "__omoNativeLoopTriggered";
16
+ export declare function createCommandExecuteBeforeHandler(args: {
17
+ hooks: CreatedHooks;
18
+ }): (input: CommandExecuteBeforeInput, output: CommandExecuteBeforeOutput) => Promise<void>;
19
+ export { NATIVE_LOOP_TRIGGERED_FLAG };
@@ -1,10 +1,12 @@
1
1
  import type { HookName, OhMyOpenCodeConfig } from "../../config";
2
+ import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
2
3
  import type { PluginContext } from "../types";
3
4
  import type { ModelCacheState } from "../../plugin-state";
4
5
  export declare function createCoreHooks(args: {
5
6
  ctx: PluginContext;
6
7
  pluginConfig: OhMyOpenCodeConfig;
7
8
  modelCacheState: ModelCacheState;
9
+ modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
8
10
  isHookEnabled: (hookName: HookName) => boolean;
9
11
  safeHookEnabled: boolean;
10
12
  }): {
@@ -12,6 +14,7 @@ export declare function createCoreHooks(args: {
12
14
  keywordDetector: ReturnType<typeof import("../../hooks").createKeywordDetectorHook> | null;
13
15
  contextInjectorMessagesTransform: ReturnType<typeof import("../../features/context-injector").createContextInjectorMessagesTransformHook>;
14
16
  thinkingBlockValidator: ReturnType<typeof import("../../hooks").createThinkingBlockValidatorHook> | null;
17
+ toolPairValidator: ReturnType<typeof import("../../hooks").createToolPairValidatorHook> | null;
15
18
  commentChecker: ReturnType<typeof import("../../hooks").createCommentCheckerHooks> | null;
16
19
  toolOutputTruncator: ReturnType<typeof import("../../hooks").createToolOutputTruncatorHook> | null;
17
20
  directoryAgentsInjector: ReturnType<typeof import("../../hooks").createDirectoryAgentsInjectorHook> | null;
@@ -20,6 +23,7 @@ export declare function createCoreHooks(args: {
20
23
  rulesInjector: ReturnType<typeof import("../../hooks").createRulesInjectorHook> | null;
21
24
  tasksTodowriteDisabler: ReturnType<typeof import("../../hooks").createTasksTodowriteDisablerHook> | null;
22
25
  writeExistingFileGuard: ReturnType<typeof import("../../hooks").createWriteExistingFileGuardHook> | null;
26
+ bashFileReadGuard: ReturnType<typeof import("../../hooks").createBashFileReadGuardHook> | null;
23
27
  hashlineReadEnhancer: ReturnType<typeof import("../../hooks").createHashlineReadEnhancerHook> | null;
24
28
  jsonErrorRecovery: ReturnType<typeof import("../../hooks").createJsonErrorRecoveryHook> | null;
25
29
  readImageResizer: ReturnType<typeof import("../../hooks").createReadImageResizerHook> | null;
@@ -48,4 +52,5 @@ export declare function createCoreHooks(args: {
48
52
  taskResumeInfo: ReturnType<typeof import("../../hooks").createTaskResumeInfoHook> | null;
49
53
  anthropicEffort: ReturnType<typeof import("../../hooks/anthropic-effort").createAnthropicEffortHook> | null;
50
54
  runtimeFallback: ReturnType<typeof import("../../hooks").createRuntimeFallbackHook> | null;
55
+ legacyPluginToast: ReturnType<typeof import("../../hooks").createLegacyPluginToastHook> | null;
51
56
  };
@@ -1,7 +1,8 @@
1
1
  import type { OhMyOpenCodeConfig, HookName } from "../../config";
2
+ import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
2
3
  import type { ModelCacheState } from "../../plugin-state";
3
4
  import type { PluginContext } from "../types";
4
- import { createContextWindowMonitorHook, createSessionRecoveryHook, createSessionNotification, createThinkModeHook, createModelFallbackHook, createAnthropicContextWindowLimitRecoveryHook, createAutoUpdateCheckerHook, createAgentUsageReminderHook, createNonInteractiveEnvHook, createInteractiveBashSessionHook, createRalphLoopHook, createEditErrorRecoveryHook, createDelegateTaskRetryHook, createTaskResumeInfoHook, createStartWorkHook, createPrometheusMdOnlyHook, createSisyphusJuniorNotepadHook, createNoSisyphusGptHook, createNoHephaestusNonGptHook, createQuestionLabelTruncatorHook, createPreemptiveCompactionHook, createRuntimeFallbackHook } from "../../hooks";
5
+ import { createContextWindowMonitorHook, createSessionRecoveryHook, createSessionNotification, createThinkModeHook, createModelFallbackHook, createAnthropicContextWindowLimitRecoveryHook, createAutoUpdateCheckerHook, createAgentUsageReminderHook, createNonInteractiveEnvHook, createInteractiveBashSessionHook, createRalphLoopHook, createEditErrorRecoveryHook, createDelegateTaskRetryHook, createTaskResumeInfoHook, createStartWorkHook, createPrometheusMdOnlyHook, createSisyphusJuniorNotepadHook, createNoSisyphusGptHook, createNoHephaestusNonGptHook, createQuestionLabelTruncatorHook, createPreemptiveCompactionHook, createRuntimeFallbackHook, createLegacyPluginToastHook } from "../../hooks";
5
6
  import { createAnthropicEffortHook } from "../../hooks/anthropic-effort";
6
7
  export type SessionHooks = {
7
8
  contextWindowMonitor: ReturnType<typeof createContextWindowMonitorHook> | null;
@@ -27,11 +28,13 @@ export type SessionHooks = {
27
28
  taskResumeInfo: ReturnType<typeof createTaskResumeInfoHook> | null;
28
29
  anthropicEffort: ReturnType<typeof createAnthropicEffortHook> | null;
29
30
  runtimeFallback: ReturnType<typeof createRuntimeFallbackHook> | null;
31
+ legacyPluginToast: ReturnType<typeof createLegacyPluginToastHook> | null;
30
32
  };
31
33
  export declare function createSessionHooks(args: {
32
34
  ctx: PluginContext;
33
35
  pluginConfig: OhMyOpenCodeConfig;
34
36
  modelCacheState: ModelCacheState;
37
+ modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
35
38
  isHookEnabled: (hookName: HookName) => boolean;
36
39
  safeHookEnabled: boolean;
37
40
  }): SessionHooks;
@@ -1,7 +1,7 @@
1
1
  import type { HookName, OhMyOpenCodeConfig } from "../../config";
2
2
  import type { ModelCacheState } from "../../plugin-state";
3
3
  import type { PluginContext } from "../types";
4
- import { createCommentCheckerHooks, createToolOutputTruncatorHook, createDirectoryAgentsInjectorHook, createDirectoryReadmeInjectorHook, createEmptyTaskResponseDetectorHook, createRulesInjectorHook, createTasksTodowriteDisablerHook, createWriteExistingFileGuardHook, createHashlineReadEnhancerHook, createReadImageResizerHook, createJsonErrorRecoveryHook, createTodoDescriptionOverrideHook, createWebFetchRedirectGuardHook } from "../../hooks";
4
+ import { createCommentCheckerHooks, createToolOutputTruncatorHook, createDirectoryAgentsInjectorHook, createDirectoryReadmeInjectorHook, createEmptyTaskResponseDetectorHook, createRulesInjectorHook, createTasksTodowriteDisablerHook, createWriteExistingFileGuardHook, createBashFileReadGuardHook, createHashlineReadEnhancerHook, createReadImageResizerHook, createJsonErrorRecoveryHook, createTodoDescriptionOverrideHook, createWebFetchRedirectGuardHook } from "../../hooks";
5
5
  export type ToolGuardHooks = {
6
6
  commentChecker: ReturnType<typeof createCommentCheckerHooks> | null;
7
7
  toolOutputTruncator: ReturnType<typeof createToolOutputTruncatorHook> | null;
@@ -11,6 +11,7 @@ export type ToolGuardHooks = {
11
11
  rulesInjector: ReturnType<typeof createRulesInjectorHook> | null;
12
12
  tasksTodowriteDisabler: ReturnType<typeof createTasksTodowriteDisablerHook> | null;
13
13
  writeExistingFileGuard: ReturnType<typeof createWriteExistingFileGuardHook> | null;
14
+ bashFileReadGuard: ReturnType<typeof createBashFileReadGuardHook> | null;
14
15
  hashlineReadEnhancer: ReturnType<typeof createHashlineReadEnhancerHook> | null;
15
16
  jsonErrorRecovery: ReturnType<typeof createJsonErrorRecoveryHook> | null;
16
17
  readImageResizer: ReturnType<typeof createReadImageResizerHook> | null;
@@ -1,16 +1,19 @@
1
1
  import type { OhMyOpenCodeConfig } from "../../config";
2
2
  import type { PluginContext } from "../types";
3
- import { createClaudeCodeHooksHook, createKeywordDetectorHook, createThinkingBlockValidatorHook } from "../../hooks";
3
+ import type { RalphLoopHook } from "../../hooks/ralph-loop";
4
+ import { createClaudeCodeHooksHook, createKeywordDetectorHook, createThinkingBlockValidatorHook, createToolPairValidatorHook } from "../../hooks";
4
5
  import { createContextInjectorMessagesTransformHook } from "../../features/context-injector";
5
6
  export type TransformHooks = {
6
7
  claudeCodeHooks: ReturnType<typeof createClaudeCodeHooksHook> | null;
7
8
  keywordDetector: ReturnType<typeof createKeywordDetectorHook> | null;
8
9
  contextInjectorMessagesTransform: ReturnType<typeof createContextInjectorMessagesTransformHook>;
9
10
  thinkingBlockValidator: ReturnType<typeof createThinkingBlockValidatorHook> | null;
11
+ toolPairValidator: ReturnType<typeof createToolPairValidatorHook> | null;
10
12
  };
11
13
  export declare function createTransformHooks(args: {
12
14
  ctx: PluginContext;
13
15
  pluginConfig: OhMyOpenCodeConfig;
14
16
  isHookEnabled: (hookName: string) => boolean;
15
17
  safeHookEnabled?: boolean;
18
+ ralphLoop?: RalphLoopHook | null;
16
19
  }): TransformHooks;
@@ -1,16 +1,41 @@
1
1
  import type { AvailableCategory } from "../agents/dynamic-agent-prompt-builder";
2
2
  import type { OhMyOpenCodeConfig } from "../config";
3
3
  import type { PluginContext, ToolsRecord } from "./types";
4
+ import { builtinTools, createBackgroundTools, createCallOmoAgent, createLookAt, createSkillMcpTool, createSkillTool, createGrepTools, createGlobTools, createAstGrepTools, createSessionManagerTools, createDelegateTask, discoverCommandsSync, interactive_bash, createTaskCreateTool, createTaskGetTool, createTaskList, createTaskUpdateTool, createHashlineEditTool } from "../tools";
4
5
  import type { Managers } from "../create-managers";
5
6
  import type { SkillContext } from "./skill-context";
7
+ type ToolRegistryFactories = {
8
+ builtinTools: typeof builtinTools;
9
+ createBackgroundTools: typeof createBackgroundTools;
10
+ createCallOmoAgent: typeof createCallOmoAgent;
11
+ createLookAt: typeof createLookAt;
12
+ createSkillMcpTool: typeof createSkillMcpTool;
13
+ createSkillTool: typeof createSkillTool;
14
+ createGrepTools: typeof createGrepTools;
15
+ createGlobTools: typeof createGlobTools;
16
+ createAstGrepTools: typeof createAstGrepTools;
17
+ createSessionManagerTools: typeof createSessionManagerTools;
18
+ createDelegateTask: typeof createDelegateTask;
19
+ discoverCommandsSync: typeof discoverCommandsSync;
20
+ interactive_bash: typeof interactive_bash;
21
+ createTaskCreateTool: typeof createTaskCreateTool;
22
+ createTaskGetTool: typeof createTaskGetTool;
23
+ createTaskList: typeof createTaskList;
24
+ createTaskUpdateTool: typeof createTaskUpdateTool;
25
+ createHashlineEditTool: typeof createHashlineEditTool;
26
+ };
6
27
  export type ToolRegistryResult = {
7
28
  filteredTools: ToolsRecord;
8
29
  taskSystemEnabled: boolean;
9
30
  };
31
+ export declare function trimToolsToCap(filteredTools: ToolsRecord, maxTools: number): void;
10
32
  export declare function createToolRegistry(args: {
11
33
  ctx: PluginContext;
12
34
  pluginConfig: OhMyOpenCodeConfig;
13
- managers: Pick<Managers, "backgroundManager" | "tmuxSessionManager" | "skillMcpManager">;
35
+ managers: Pick<Managers, "backgroundManager" | "tmuxSessionManager" | "skillMcpManager" | "modelFallbackControllerAccessor">;
14
36
  skillContext: SkillContext;
15
37
  availableCategories: AvailableCategory[];
38
+ interactiveBashEnabled?: boolean;
39
+ toolFactories?: Partial<ToolRegistryFactories>;
16
40
  }): ToolRegistryResult;
41
+ export {};
@@ -14,5 +14,6 @@ export type TmuxConfig = {
14
14
  main_pane_size: number;
15
15
  main_pane_min_width: number;
16
16
  agent_pane_min_width: number;
17
+ isolation: "inline" | "window" | "session";
17
18
  };
18
19
  export {};
@@ -1 +1,12 @@
1
+ /**
2
+ * CRITICAL: This is the ONLY source of truth for core agent ordering.
3
+ * The order is: sisyphus → hephaestus → prometheus → atlas
4
+ *
5
+ * DO NOT CHANGE THIS ORDER. Any PR attempting to modify this order
6
+ * or introduce alternative ordering mechanisms (ZWSP prefixes, sort
7
+ * shims, etc.) will be rejected.
8
+ *
9
+ * See: src/plugin-handlers/AGENTS.md for architectural context.
10
+ */
11
+ export declare const CANONICAL_CORE_AGENT_ORDER: readonly ["sisyphus", "hephaestus", "prometheus", "atlas"];
1
12
  export declare function reorderAgentsByPriority(agents: Record<string, unknown>): Record<string, unknown>;
@@ -1,17 +1,38 @@
1
1
  /**
2
2
  * Agent config keys to display names mapping.
3
3
  * Config keys are lowercase (e.g., "sisyphus", "atlas").
4
- * Display names include suffixes for UI/logs (e.g., "Sisyphus (Ultraworker)").
4
+ * Display names include suffixes for UI/logs (e.g., "Sisyphus - Ultraworker").
5
+ *
6
+ * IMPORTANT: Display names MUST NOT contain parentheses or other characters
7
+ * that are invalid in HTTP header values per RFC 7230. OpenCode passes the
8
+ * agent name in the `x-opencode-agent-name` header, and parentheses cause
9
+ * header validation failures that prevent agents from appearing in the UI
10
+ * type selector dropdown. Use ` - ` (space-dash-space) instead of `(...)`.
5
11
  */
6
12
  export declare const AGENT_DISPLAY_NAMES: Record<string, string>;
13
+ export declare function stripInvisibleAgentCharacters(agentName: string): string;
14
+ export declare function stripAgentListSortPrefix(agentName: string): string;
15
+ export declare function getAgentRuntimeName(configKey: string): string;
7
16
  /**
8
17
  * Get display name for an agent config key.
9
18
  * Uses case-insensitive lookup for backward compatibility.
10
19
  * Returns original key if not found.
11
20
  */
12
21
  export declare function getAgentDisplayName(configKey: string): string;
22
+ /**
23
+ * Runtime-facing agent name used for OpenCode list ordering.
24
+ */
25
+ export declare function getAgentListDisplayName(configKey: string): string;
13
26
  /**
14
27
  * Resolve an agent name (display name or config key) to its lowercase config key.
15
- * "Atlas (Plan Executor)" "atlas", "atlas" "atlas", "unknown" "unknown"
28
+ * "Atlas - Plan Executor" -> "atlas", "Atlas (Plan Executor)" -> "atlas", "atlas" -> "atlas"
16
29
  */
17
30
  export declare function getAgentConfigKey(agentName: string): string;
31
+ /**
32
+ * Normalize an agent name for prompt APIs.
33
+ * - Known display names -> canonical display names
34
+ * - Known config keys (any case) -> canonical display names
35
+ * - Unknown/custom names -> preserved as-is (trimmed)
36
+ */
37
+ export declare function normalizeAgentForPrompt(agentName: string | undefined): string | undefined;
38
+ export declare function normalizeAgentForPromptKey(agentName: string | undefined): string | undefined;
@@ -1,7 +1,2 @@
1
- /**
2
- * Agent tool restrictions for session.prompt calls.
3
- * OpenCode SDK's session.prompt `tools` parameter expects boolean values.
4
- * true = tool allowed, false = tool denied.
5
- */
6
1
  export declare function getAgentToolRestrictions(agentName: string): Record<string, boolean>;
7
2
  export declare function hasAgentToolRestrictions(agentName: string): boolean;
@@ -0,0 +1,6 @@
1
+ export type ArchiveEntry = {
2
+ path: string;
3
+ type: "file" | "directory" | "symlink" | "hardlink";
4
+ linkPath?: string;
5
+ };
6
+ export declare function validateArchiveEntries(entries: ArchiveEntry[], destDir: string): void;
@@ -0,0 +1,5 @@
1
+ export declare function recordBackgroundOutputConsumption(parentSessionID: string | undefined, parentMessageID: string | undefined, taskSessionID: string | undefined): void;
2
+ export declare function restoreBackgroundOutputConsumption(parentSessionID: string | undefined, parentMessageID: string | undefined): void;
3
+ export declare function clearBackgroundOutputConsumptionsForParentSession(sessionID: string | undefined): void;
4
+ export declare function clearBackgroundOutputConsumptionsForTaskSession(taskSessionID: string | undefined): void;
5
+ export declare function clearBackgroundOutputConsumptionState(): void;
@@ -0,0 +1,13 @@
1
+ type CompactionMessageLike = {
2
+ agent?: unknown;
3
+ info?: {
4
+ agent?: unknown;
5
+ };
6
+ parts?: unknown;
7
+ };
8
+ export declare function isCompactionAgent(agent: unknown): boolean;
9
+ export declare function hasCompactionPart(parts: unknown): boolean;
10
+ export declare function isCompactionMessage(message: CompactionMessageLike): boolean;
11
+ export declare function getCompactionPartStorageDir(messageID: string): string;
12
+ export declare function hasCompactionPartInStorage(messageID: string | undefined): boolean;
13
+ export {};
@@ -47,6 +47,7 @@ export declare function createConnectedProvidersCacheStore(getCacheDir?: () => s
47
47
  }>;
48
48
  };
49
49
  }) => Promise<void>;
50
+ _resetMemCacheForTesting: () => void;
50
51
  };
51
52
  export declare function findProviderModelMetadata(providerID: string, modelID: string, cache?: ProviderModelsCache | null): ModelMetadata | undefined;
52
53
  export declare const readConnectedProvidersCache: () => string[] | null, hasConnectedProvidersCache: () => boolean, readProviderModelsCache: () => ProviderModelsCache | null, hasProviderModelsCache: () => boolean, writeProviderModelsCache: (data: {
@@ -64,4 +65,4 @@ export declare const readConnectedProvidersCache: () => string[] | null, hasConn
64
65
  };
65
66
  }>;
66
67
  };
67
- }) => Promise<void>;
68
+ }) => Promise<void>, _resetMemCacheForTesting: () => void;
@@ -0,0 +1,2 @@
1
+ export declare function containsPath(rootPath: string, candidatePath: string): boolean;
2
+ export declare function isWithinProject(candidatePath: string, projectRoot: string): boolean;
@@ -7,12 +7,26 @@ export interface ExternalNotifierResult {
7
7
  pluginName: string | null;
8
8
  allPlugins: string[];
9
9
  }
10
+ export interface ExternalSkillPluginResult {
11
+ detected: boolean;
12
+ pluginName: string | null;
13
+ allPlugins: string[];
14
+ }
10
15
  /**
11
16
  * Detect if any external notification plugin is configured.
12
17
  * Returns information about detected plugins for logging/warning.
13
18
  */
14
19
  export declare function detectExternalNotificationPlugin(directory: string): ExternalNotifierResult;
20
+ /**
21
+ * Detect if any external skill plugin is configured.
22
+ * Returns information about detected plugins for logging/warning.
23
+ */
24
+ export declare function detectExternalSkillPlugin(directory: string): ExternalSkillPluginResult;
15
25
  /**
16
26
  * Generate a warning message for users with conflicting notification plugins.
17
27
  */
18
28
  export declare function getNotificationConflictWarning(pluginName: string): string;
29
+ /**
30
+ * Generate a warning message for users with conflicting skill plugins.
31
+ */
32
+ export declare function getSkillPluginConflictWarning(pluginName: string): string;
@@ -1,5 +1,6 @@
1
1
  export * from "./frontmatter";
2
2
  export * from "./command-executor";
3
+ export * from "./contains-path";
3
4
  export * from "./file-reference-resolver";
4
5
  export * from "./model-sanitizer";
5
6
  export * from "./logger";
@@ -16,6 +17,7 @@ export * from "./claude-config-dir";
16
17
  export * from "./jsonc-parser";
17
18
  export * from "./migration";
18
19
  export * from "./opencode-config-dir";
20
+ export * from "./resolve-agent-definition-paths";
19
21
  export type { OpenCodeBinaryType, OpenCodeConfigDirOptions, OpenCodeConfigPaths, } from "./opencode-config-dir-types";
20
22
  export * from "./opencode-version";
21
23
  export * from "./opencode-storage-detection";
@@ -23,6 +25,7 @@ export * from "./permission-compat";
23
25
  export * from "./external-plugin-detector";
24
26
  export * from "./zip-extractor";
25
27
  export * from "./binary-downloader";
28
+ export * from "./write-file-atomically";
26
29
  export * from "./agent-variant";
27
30
  export * from "./session-cursor";
28
31
  export * from "./shell-env";
@@ -46,6 +49,7 @@ export * from "./session-utils";
46
49
  export * from "./tmux";
47
50
  export * from "./model-suggestion-retry";
48
51
  export * from "./opencode-server-auth";
52
+ export * from "./opencode-provider-auth";
49
53
  export * from "./opencode-http-api";
50
54
  export * from "./port-utils";
51
55
  export * from "./git-worktree";
@@ -58,7 +62,12 @@ export * from "./project-discovery-dirs";
58
62
  export * from "./normalize-sdk-response";
59
63
  export * from "./session-directory-resolver";
60
64
  export * from "./prompt-tools";
65
+ export * from "./compaction-marker";
61
66
  export * from "./internal-initiator-marker";
62
67
  export * from "./plugin-command-discovery";
63
68
  export { SessionCategoryRegistry } from "./session-category-registry";
64
69
  export * from "./plugin-identity";
70
+ export * from "./log-legacy-plugin-startup-warning";
71
+ export * from "./task-system-enabled";
72
+ export * from "./parse-tools-config";
73
+ export { parseModelString } from "./model-string-parser";
@@ -1,4 +1,5 @@
1
1
  export declare const OMO_INTERNAL_INITIATOR_MARKER = "<!-- OMO_INTERNAL_INITIATOR -->";
2
+ export declare function stripInternalInitiatorMarkers(text: string): string;
2
3
  export declare function createInternalAgentTextPart(text: string): {
3
4
  type: "text";
4
5
  text: string;
@@ -0,0 +1 @@
1
+ export declare function isAbortError(error: unknown): boolean;
@@ -0,0 +1,16 @@
1
+ type JsonFileCacheStoreOptions<TValue> = {
2
+ getCacheDir: () => string;
3
+ filename: string;
4
+ logPrefix: string;
5
+ cacheLabel: string;
6
+ describe: (value: TValue) => Record<string, unknown>;
7
+ serialize?: (value: TValue) => string;
8
+ };
9
+ type JsonFileCacheStore<TValue> = {
10
+ read: () => TValue | null;
11
+ has: () => boolean;
12
+ write: (value: TValue) => void;
13
+ resetMemory: () => void;
14
+ };
15
+ export declare function createJsonFileCacheStore<TValue>(options: JsonFileCacheStoreOptions<TValue>): JsonFileCacheStore<TValue>;
16
+ export {};
@@ -16,4 +16,5 @@ export declare function detectConfigFile(basePath: string): {
16
16
  export declare function detectPluginConfigFile(dir: string): {
17
17
  format: "json" | "jsonc" | "none";
18
18
  path: string;
19
+ legacyPath?: string;
19
20
  };
@@ -0,0 +1,7 @@
1
+ export interface LegacyPluginCheckResult {
2
+ hasLegacyEntry: boolean;
3
+ hasCanonicalEntry: boolean;
4
+ legacyEntries: string[];
5
+ configPath: string | null;
6
+ }
7
+ export declare function checkForLegacyPluginEntry(overrideConfigDir?: string): LegacyPluginCheckResult;
@@ -0,0 +1 @@
1
+ export declare function loadOpencodePlugins(directory: string): string[];
@@ -0,0 +1,10 @@
1
+ import { checkForLegacyPluginEntry } from "./legacy-plugin-warning";
2
+ import { log } from "./logger";
3
+ import { migrateLegacyPluginEntry } from "./migrate-legacy-plugin-entry";
4
+ type LogLegacyPluginStartupWarningDeps = {
5
+ checkForLegacyPluginEntry?: typeof checkForLegacyPluginEntry;
6
+ log?: typeof log;
7
+ migrateLegacyPluginEntry?: typeof migrateLegacyPluginEntry;
8
+ };
9
+ export declare function logLegacyPluginStartupWarning(deps?: LogLegacyPluginStartupWarningDeps): void;
10
+ export {};