@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
@@ -0,0 +1 @@
1
+ export declare function migrateLegacyConfigFile(legacyPath: string): boolean;
@@ -0,0 +1 @@
1
+ export declare function migrateLegacyPluginEntry(configPath: string): boolean;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Sidecar state file that tracks applied config migrations outside the user's
3
+ * config file.
4
+ *
5
+ * Why this exists (#3263): users who revert an auto-migrated value (e.g.
6
+ * `gpt-5.4` → `gpt-5.3-codex`) and then delete the `_migrations` field from
7
+ * their config would fall into an infinite migration loop — every startup
8
+ * re-applied the migration because there was no memory of the previous
9
+ * application. The sidecar remembers applied migrations even when the user
10
+ * scrubs the config, and only "resets" when the user explicitly deletes both
11
+ * the config and the sidecar.
12
+ *
13
+ * The sidecar lives next to the config file as
14
+ * `<configFileName>.migrations.json`. One sidecar per config file. The file
15
+ * format is a flat JSON object:
16
+ *
17
+ * {
18
+ * "appliedMigrations": [
19
+ * "model-version:openai/gpt-5.3-codex->openai/gpt-5.4",
20
+ * "model-version:anthropic/claude-opus-4-5->anthropic/claude-opus-4-7"
21
+ * ]
22
+ * }
23
+ */
24
+ export interface MigrationsSidecar {
25
+ appliedMigrations: string[];
26
+ }
27
+ export declare function getSidecarPath(configPath: string): string;
28
+ /**
29
+ * Read the set of applied migration keys from the sidecar next to
30
+ * `configPath`. Returns an empty set on any read or parse failure so the
31
+ * caller can still trust the return value and safely fall back to the
32
+ * config's `_migrations` field.
33
+ */
34
+ export declare function readAppliedMigrations(configPath: string): Set<string>;
35
+ /**
36
+ * Persist the given set of applied migration keys to the sidecar next to
37
+ * `configPath`. The sidecar is written atomically. Returns true on success,
38
+ * false if the write failed (the caller can still proceed — the next
39
+ * startup will re-run the migration, which is idempotent by design).
40
+ */
41
+ export declare function writeAppliedMigrations(configPath: string, migrations: Set<string>): boolean;
@@ -0,0 +1,2 @@
1
+ import type { ModelCapabilitiesSnapshot } from "./types";
2
+ export declare function getBundledModelCapabilitiesSnapshot(): ModelCapabilitiesSnapshot;
@@ -0,0 +1,2 @@
1
+ import type { GetModelCapabilitiesInput, ModelCapabilities } from "./types";
2
+ export declare function getModelCapabilities(input: GetModelCapabilitiesInput): ModelCapabilities;
@@ -0,0 +1,3 @@
1
+ export { getBundledModelCapabilitiesSnapshot } from "./bundled-snapshot";
2
+ export { getModelCapabilities } from "./get-model-capabilities";
3
+ export type { GetModelCapabilitiesInput, ModelCapabilities, ModelCapabilitiesDiagnostics, ModelCapabilitiesSnapshot, ModelCapabilitiesSnapshotEntry, } from "./types";
@@ -0,0 +1,11 @@
1
+ import type { ModelMetadata } from "../connected-providers-cache";
2
+ import type { ModelCapabilities } from "./types";
3
+ export declare function readRuntimeModel(runtimeModel: ModelMetadata | Record<string, unknown> | undefined): Record<string, unknown> | undefined;
4
+ export declare function readRuntimeModelVariants(runtimeModel: Record<string, unknown> | undefined): string[] | undefined;
5
+ export declare function readRuntimeModelModalities(runtimeModel: Record<string, unknown> | undefined): ModelCapabilities["modalities"] | undefined;
6
+ export declare function readRuntimeModelReasoningSupport(runtimeModel: Record<string, unknown> | undefined): boolean | undefined;
7
+ export declare function readRuntimeModelThinkingSupport(runtimeModel: Record<string, unknown> | undefined): boolean | undefined;
8
+ export declare function readRuntimeModelTemperatureSupport(runtimeModel: Record<string, unknown> | undefined): boolean | undefined;
9
+ export declare function readRuntimeModelTopPSupport(runtimeModel: Record<string, unknown> | undefined): boolean | undefined;
10
+ export declare function readRuntimeModelToolCallSupport(runtimeModel: Record<string, unknown> | undefined): boolean | undefined;
11
+ export declare function readRuntimeModelLimitOutput(runtimeModel: Record<string, unknown> | undefined): number | undefined;
@@ -1,4 +1,4 @@
1
- import { type ModelMetadata } from "./connected-providers-cache";
1
+ import type { ModelMetadata } from "../connected-providers-cache";
2
2
  export type ModelCapabilitiesSnapshotEntry = {
3
3
  id: string;
4
4
  family?: string;
@@ -20,32 +20,6 @@ export type ModelCapabilitiesSnapshot = {
20
20
  sourceUrl: string;
21
21
  models: Record<string, ModelCapabilitiesSnapshotEntry>;
22
22
  };
23
- export type ModelCapabilities = {
24
- requestedModelID: string;
25
- canonicalModelID: string;
26
- family?: string;
27
- variants?: string[];
28
- reasoningEfforts?: string[];
29
- reasoning?: boolean;
30
- supportsThinking?: boolean;
31
- supportsTemperature?: boolean;
32
- supportsTopP?: boolean;
33
- maxOutputTokens?: number;
34
- toolCall?: boolean;
35
- modalities?: {
36
- input?: string[];
37
- output?: string[];
38
- };
39
- diagnostics: ModelCapabilitiesDiagnostics;
40
- };
41
- type GetModelCapabilitiesInput = {
42
- providerID: string;
43
- modelID: string;
44
- runtimeModel?: ModelMetadata | Record<string, unknown>;
45
- runtimeSnapshot?: ModelCapabilitiesSnapshot;
46
- bundledSnapshot?: ModelCapabilitiesSnapshot;
47
- };
48
- type DiagnosticSource = "none" | "runtime" | "runtime-snapshot" | "bundled-snapshot" | "override" | "heuristic" | "canonical" | "exact-alias" | "pattern-alias";
49
23
  export type ModelCapabilitiesDiagnostics = {
50
24
  resolutionMode: "snapshot-backed" | "alias-backed" | "heuristic-backed" | "unknown";
51
25
  canonicalization: {
@@ -59,10 +33,10 @@ export type ModelCapabilitiesDiagnostics = {
59
33
  source: "snapshot" | "heuristic" | "none";
60
34
  };
61
35
  variants: {
62
- source: Exclude<DiagnosticSource, "runtime-snapshot" | "bundled-snapshot" | "exact-alias" | "pattern-alias">;
36
+ source: "none" | "runtime" | "override" | "heuristic" | "canonical";
63
37
  };
64
38
  reasoningEfforts: {
65
- source: Exclude<DiagnosticSource, "runtime-snapshot" | "bundled-snapshot" | "canonical" | "exact-alias" | "pattern-alias" | "runtime">;
39
+ source: "none" | "override" | "heuristic";
66
40
  };
67
41
  reasoning: {
68
42
  source: "runtime" | "runtime-snapshot" | "bundled-snapshot" | "none";
@@ -86,6 +60,35 @@ export type ModelCapabilitiesDiagnostics = {
86
60
  source: "runtime" | "runtime-snapshot" | "bundled-snapshot" | "none";
87
61
  };
88
62
  };
89
- export declare function getBundledModelCapabilitiesSnapshot(): ModelCapabilitiesSnapshot;
90
- export declare function getModelCapabilities(input: GetModelCapabilitiesInput): ModelCapabilities;
91
- export {};
63
+ export type ModelCapabilities = {
64
+ requestedModelID: string;
65
+ canonicalModelID: string;
66
+ family?: string;
67
+ variants?: string[];
68
+ reasoningEfforts?: string[];
69
+ reasoning?: boolean;
70
+ supportsThinking?: boolean;
71
+ supportsTemperature?: boolean;
72
+ supportsTopP?: boolean;
73
+ maxOutputTokens?: number;
74
+ toolCall?: boolean;
75
+ modalities?: {
76
+ input?: string[];
77
+ output?: string[];
78
+ };
79
+ diagnostics: ModelCapabilitiesDiagnostics;
80
+ };
81
+ export type GetModelCapabilitiesInput = {
82
+ providerID: string;
83
+ modelID: string;
84
+ runtimeModel?: ModelMetadata | Record<string, unknown>;
85
+ runtimeSnapshot?: ModelCapabilitiesSnapshot;
86
+ bundledSnapshot?: ModelCapabilitiesSnapshot;
87
+ };
88
+ export type ModelCapabilityOverride = {
89
+ variants?: string[];
90
+ reasoningEfforts?: string[];
91
+ supportsThinking?: boolean;
92
+ supportsTemperature?: boolean;
93
+ supportsTopP?: boolean;
94
+ };
@@ -23,14 +23,5 @@ interface PromptArgs {
23
23
  [key: string]: unknown;
24
24
  }
25
25
  export declare function promptWithModelSuggestionRetry(client: Client, args: PromptArgs, options?: PromptRetryOptions): Promise<void>;
26
- /**
27
- * Synchronous variant of promptWithModelSuggestionRetry.
28
- *
29
- * Uses `session.prompt` (blocking HTTP call that waits for the LLM response)
30
- * instead of `promptAsync` (fire-and-forget HTTP 204).
31
- *
32
- * Required by callers that need the response to be available immediately after
33
- * the call returns — e.g. look_at, which reads session messages right away.
34
- */
35
26
  export declare function promptSyncWithModelSuggestionRetry(client: Client, args: PromptArgs, options?: PromptRetryOptions): Promise<void>;
36
27
  export {};
@@ -0,0 +1,3 @@
1
+ export declare function getProviderAuthType(providerID: string): string | undefined;
2
+ export declare function isProviderUsingOAuth(providerID: string): boolean;
3
+ export declare function _resetProviderAuthCacheForTesting(): void;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parses a tools configuration value into a boolean record.
3
+ * Accepts comma-separated strings, string arrays, or unknown values from config files.
4
+ * Returns undefined when input is empty or invalid.
5
+ */
6
+ export declare function parseToolsConfig(toolsValue: unknown): Record<string, boolean> | undefined;
@@ -9,7 +9,7 @@ export interface PermissionFormat {
9
9
  /**
10
10
  * Creates tool restrictions that deny specified tools.
11
11
  */
12
- export declare function createAgentToolRestrictions(denyTools: string[]): PermissionFormat;
12
+ export declare function createAgentToolRestrictions(denyTools: string[], allowTools?: string[]): PermissionFormat;
13
13
  /**
14
14
  * Creates tool restrictions that ONLY allow specified tools.
15
15
  * All other tools are denied by default using `*: deny` pattern.
@@ -0,0 +1,3 @@
1
+ export declare function isLegacyEntry(entry: string): boolean;
2
+ export declare function isCanonicalEntry(entry: string): boolean;
3
+ export declare function toCanonicalEntry(entry: string): string;
@@ -1,5 +1,8 @@
1
- export declare const PLUGIN_NAME = "oh-my-opencode";
2
- export declare const LEGACY_PLUGIN_NAME = "oh-my-openagent";
3
- export declare const CONFIG_BASENAME = "oh-my-opencode";
1
+ export declare const PLUGIN_NAME = "oh-my-openagent";
2
+ export declare const LEGACY_PLUGIN_NAME = "oh-my-opencode";
3
+ export declare const PUBLISHED_PACKAGE_NAME = "oh-my-opencode";
4
+ export declare const ACCEPTED_PACKAGE_NAMES: readonly ["oh-my-opencode", "oh-my-openagent"];
5
+ export declare const CONFIG_BASENAME = "oh-my-openagent";
6
+ export declare const LEGACY_CONFIG_BASENAME = "oh-my-opencode";
4
7
  export declare const LOG_FILENAME = "oh-my-opencode.log";
5
8
  export declare const CACHE_DIR_NAME = "oh-my-opencode";
@@ -0,0 +1,8 @@
1
+ type PostHogActivityCaptureState = {
2
+ dayUTC: string;
3
+ hourUTC: string;
4
+ captureDaily: boolean;
5
+ captureHourly: boolean;
6
+ };
7
+ export declare function getPostHogActivityCaptureState(now?: Date): PostHogActivityCaptureState;
8
+ export {};
@@ -0,0 +1,14 @@
1
+ import { PostHog } from "posthog-node";
2
+ type PostHogCaptureEvent = Parameters<PostHog["capture"]>[0];
3
+ type PostHogExceptionProperties = Parameters<PostHog["captureException"]>[2];
4
+ type PostHogActivityReason = "run_started" | "plugin_loaded";
5
+ type PostHogClient = {
6
+ capture: (message: PostHogCaptureEvent) => void;
7
+ captureException: (error: unknown, distinctId?: string, additionalProperties?: PostHogExceptionProperties) => void;
8
+ trackActive: (distinctId: string, reason: PostHogActivityReason) => void;
9
+ shutdown: () => Promise<void>;
10
+ };
11
+ export declare function getPostHogDistinctId(): string;
12
+ export declare function createCliPostHog(): PostHogClient;
13
+ export declare function createPluginPostHog(): PostHogClient;
14
+ export {};
@@ -0,0 +1 @@
1
+ export declare function resolveAgentDefinitionPaths(paths: string[], baseDir: string, containmentDir: string | null): string[];
@@ -0,0 +1,8 @@
1
+ export type GrepBackend = "rg" | "grep";
2
+ export interface ResolvedCli {
3
+ path: string;
4
+ backend: GrepBackend;
5
+ }
6
+ export declare const DEFAULT_RG_THREADS = 4;
7
+ export declare function resolveGrepCli(): ResolvedCli;
8
+ export declare function resolveGrepCliWithAutoInstall(): Promise<ResolvedCli>;
@@ -1,32 +1,8 @@
1
- /**
2
- * Session Category Registry
3
- *
4
- * Maintains a mapping of session IDs to their assigned categories.
5
- * Used by runtime-fallback hook to lookup category-specific fallback_models.
6
- */
7
1
  export declare const SessionCategoryRegistry: {
8
- /**
9
- * Register a session with its category
10
- */
11
2
  register: (sessionID: string, category: string) => void;
12
- /**
13
- * Get the category for a session
14
- */
15
3
  get: (sessionID: string) => string | undefined;
16
- /**
17
- * Remove a session from the registry (cleanup)
18
- */
19
4
  remove: (sessionID: string) => void;
20
- /**
21
- * Check if a session is registered
22
- */
23
5
  has: (sessionID: string) => boolean;
24
- /**
25
- * Get the size of the registry (for debugging)
26
- */
27
6
  size: () => number;
28
- /**
29
- * Clear all entries (use with caution, mainly for testing)
30
- */
31
7
  clear: () => void;
32
8
  };
@@ -8,6 +8,12 @@ type MessageInfo = {
8
8
  export type CursorMessage = {
9
9
  info?: MessageInfo;
10
10
  };
11
+ export interface CursorState {
12
+ lastKey?: string;
13
+ lastCount: number;
14
+ }
11
15
  export declare function consumeNewMessages<T extends CursorMessage>(sessionID: string | undefined, messages: T[]): T[];
12
16
  export declare function resetMessageCursor(sessionID?: string): void;
17
+ export declare function getMessageCursor(sessionID: string | undefined): CursorState | undefined;
18
+ export declare function restoreMessageCursor(sessionID: string | undefined, cursor: CursorState | undefined): void;
13
19
  export {};
@@ -1,6 +1,7 @@
1
1
  export type SessionPromptParams = {
2
2
  temperature?: number;
3
3
  topP?: number;
4
+ maxOutputTokens?: number;
4
5
  options?: Record<string, unknown>;
5
6
  };
6
7
  export declare function setSessionPromptParams(sessionID: string, params: SessionPromptParams): void;
@@ -3,9 +3,13 @@ export type ShellType = "unix" | "powershell" | "cmd" | "csh";
3
3
  * Detect the current shell type based on environment variables.
4
4
  *
5
5
  * Detection priority:
6
- * 1. PSModulePathPowerShell
7
- * 2. SHELL env var Unix shell
6
+ * 1. SHELL env var Unix shell (explicit user choice takes precedence)
7
+ * 2. PSModulePathPowerShell
8
8
  * 3. Platform fallback → win32: cmd, others: unix
9
+ *
10
+ * Note: SHELL is checked before PSModulePath because on Windows, PSModulePath
11
+ * is always set by the system even when the active shell is Git Bash or WSL.
12
+ * An explicit SHELL variable indicates the user's chosen shell overrides that.
9
13
  */
10
14
  export declare function detectShellType(): ShellType;
11
15
  /**
@@ -1,9 +1 @@
1
- /**
2
- * Resolves @path references in skill content to absolute paths.
3
- *
4
- * Matches @references that contain at least one slash (e.g., @scripts/search.py, @data/)
5
- * to avoid false positives with decorators (@param), JSDoc tags (@ts-ignore), etc.
6
- *
7
- * Email addresses are excluded since they have alphanumeric characters before @.
8
- */
9
1
  export declare function resolveSkillPathReferences(content: string, basePath: string): string;
@@ -0,0 +1,6 @@
1
+ export interface TaskSystemConfig {
2
+ experimental?: {
3
+ task_system?: boolean;
4
+ };
5
+ }
6
+ export declare function isTaskSystemEnabled(config: TaskSystemConfig): boolean;
@@ -1,2 +1,3 @@
1
+ export declare function markServerRunningInProcess(): void;
1
2
  export declare function isServerRunning(serverUrl: string): Promise<boolean>;
2
3
  export declare function resetServerCheck(): void;
@@ -0,0 +1,3 @@
1
+ import type { TmuxConfig } from "../../../config/schema";
2
+ import type { SpawnPaneResult } from "../types";
3
+ export declare function spawnTmuxSession(sessionId: string, description: string, config: TmuxConfig, serverUrl: string, sourcePaneId?: string): Promise<SpawnPaneResult>;
@@ -0,0 +1,3 @@
1
+ import type { TmuxConfig } from "../../../config/schema";
2
+ import type { SpawnPaneResult } from "../types";
3
+ export declare function spawnTmuxWindow(sessionId: string, description: string, config: TmuxConfig, serverUrl: string): Promise<SpawnPaneResult>;
@@ -1,9 +1,11 @@
1
1
  export { isInsideTmux, getCurrentPaneId } from "./tmux-utils/environment";
2
2
  export type { SplitDirection } from "./tmux-utils/environment";
3
- export { isServerRunning, resetServerCheck } from "./tmux-utils/server-health";
3
+ export { isServerRunning, resetServerCheck, markServerRunningInProcess } from "./tmux-utils/server-health";
4
4
  export { getPaneDimensions } from "./tmux-utils/pane-dimensions";
5
5
  export type { PaneDimensions } from "./tmux-utils/pane-dimensions";
6
6
  export { spawnTmuxPane } from "./tmux-utils/pane-spawn";
7
7
  export { closeTmuxPane } from "./tmux-utils/pane-close";
8
8
  export { replaceTmuxPane } from "./tmux-utils/pane-replace";
9
+ export { spawnTmuxWindow } from "./tmux-utils/window-spawn";
10
+ export { spawnTmuxSession } from "./tmux-utils/session-spawn";
9
11
  export { applyLayout, enforceMainPaneWidth } from "./tmux-utils/layout";
@@ -0,0 +1 @@
1
+ export declare function writeFileAtomically(filePath: string, content: string): void;
@@ -0,0 +1,4 @@
1
+ import type { ArchiveEntry } from "../archive-entry-validator";
2
+ export type PowerShellZipExtractor = "pwsh" | "powershell";
3
+ export declare function parsePowerShellZipEntryLine(line: string): ArchiveEntry | null;
4
+ export declare function listZipEntriesWithPowerShell(archivePath: string, escapePowerShellPath: (path: string) => string, extractor: PowerShellZipExtractor): Promise<ArchiveEntry[]>;
@@ -0,0 +1,3 @@
1
+ import type { ArchiveEntry } from "../archive-entry-validator";
2
+ export declare function isPythonZipListingAvailable(): boolean;
3
+ export declare function listZipEntriesWithPython(archivePath: string): Promise<ArchiveEntry[]>;
@@ -0,0 +1 @@
1
+ export declare function readZipSymlinkTarget(archivePath: string, entryPath: string): Promise<string | undefined>;
@@ -0,0 +1,3 @@
1
+ import type { ArchiveEntry } from "../archive-entry-validator";
2
+ export declare function parseTarListingOutput(stdout: string): ArchiveEntry[];
3
+ export declare function listZipEntriesWithTar(archivePath: string): Promise<ArchiveEntry[]>;
@@ -0,0 +1,4 @@
1
+ import type { ArchiveEntry } from "../archive-entry-validator";
2
+ export declare function parseZipInfoListedEntry(line: string): ArchiveEntry | null;
3
+ export declare function isZipInfoZipListingAvailable(): boolean;
4
+ export declare function listZipEntriesWithZipInfo(archivePath: string): Promise<ArchiveEntry[]>;
@@ -0,0 +1,4 @@
1
+ export { isPythonZipListingAvailable, listZipEntriesWithPython, } from "./zip-entry-listing/python-zip-entry-listing";
2
+ export { listZipEntriesWithPowerShell, type PowerShellZipExtractor, } from "./zip-entry-listing/powershell-zip-entry-listing";
3
+ export { listZipEntriesWithTar } from "./zip-entry-listing/tar-zip-entry-listing";
4
+ export { isZipInfoZipListingAvailable, listZipEntriesWithZipInfo, } from "./zip-entry-listing/zipinfo-zip-entry-listing";
@@ -0,0 +1,21 @@
1
+ type MockModuleFactory = () => Record<string, unknown>;
2
+ type MockApi = {
3
+ module: (specifier: string, factory: MockModuleFactory) => unknown;
4
+ restore: () => unknown;
5
+ };
6
+ type ModuleLoadResult = {
7
+ ok: true;
8
+ value: unknown;
9
+ } | {
10
+ ok: false;
11
+ error: Error;
12
+ };
13
+ type ModuleMockLifecycleOptions = {
14
+ getCallerUrl?: () => string;
15
+ resolveSpecifier?: (specifier: string, callerUrl: string) => string;
16
+ loadOriginalModule?: (specifier: string, callerUrl: string) => ModuleLoadResult;
17
+ };
18
+ export declare function installModuleMockLifecycle(mockApi: MockApi, options?: ModuleMockLifecycleOptions): {
19
+ restoreModuleMocks: () => void;
20
+ };
21
+ export {};
@@ -1,3 +1,3 @@
1
- export declare const BACKGROUND_TASK_DESCRIPTION = "\u5728\u540E\u53F0\u8FD0\u884C\u4EE3\u7406\u4EFB\u52A1\u3002\u7ACB\u5373\u8FD4\u56DE task_id\uFF1B\u4EFB\u52A1\u5B8C\u6210\u65F6\u53D1\u9001\u901A\u77E5\u3002\n\n\u4F7F\u7528 `background_output` \u83B7\u53D6\u7ED3\u679C\u3002\u63D0\u793A\u8BCD\u5FC5\u987B\u4F7F\u7528\u4E2D\u6587\u3002";
2
- export declare const BACKGROUND_OUTPUT_DESCRIPTION = "\u83B7\u53D6\u540E\u53F0\u4EFB\u52A1\u7684\u8F93\u51FA\u3002\u4F7F\u7528 full_session=true \u901A\u8FC7\u8FC7\u6EE4\u5668\u83B7\u53D6\u4F1A\u8BDD\u6D88\u606F\u3002\u7CFB\u7EDF\u4F1A\u5728\u5B8C\u6210\u65F6\u53D1\u9001\u901A\u77E5\uFF0C\u56E0\u6B64\u5F88\u5C11\u9700\u8981\u8BBE\u7F6E block=true\u3002- timeout \u503C\u4E3A\u6BEB\u79D2\uFF08ms\uFF09\uFF0C\u4E0D\u662F\u79D2\u3002";
3
- export declare const BACKGROUND_CANCEL_DESCRIPTION = "\u53D6\u6D88\u6B63\u5728\u8FD0\u884C\u7684\u540E\u53F0\u4EFB\u52A1\u3002\u4F7F\u7528 all=true \u5728\u6700\u7EC8\u7B54\u6848\u524D\u53D6\u6D88\u6240\u6709\u4EFB\u52A1\u3002";
1
+ export declare const BACKGROUND_TASK_DESCRIPTION = "Run agent task in background. Returns task_id immediately; notifies on completion.\n\nUse `background_output` to get results. Prompts MUST be in English.";
2
+ export declare const BACKGROUND_OUTPUT_DESCRIPTION = "Get output from background task. Use full_session=true to fetch session messages with filters. System notifies on completion, so block=true rarely needed. - Timeout values are in milliseconds (ms), NOT seconds.\n\nIMPORTANT: ONLY call this tool AFTER receiving a <system-reminder> notification for the task. Do NOT call immediately after launching a background task - wait for the notification first.";
3
+ export declare const BACKGROUND_CANCEL_DESCRIPTION = "Cancel running background task(s). Use all=true to cancel ALL before final answer.";
@@ -0,0 +1,17 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export declare function clearCallableAgentsCache(): void;
3
+ /**
4
+ * Resolves the set of callable agent names at execute-time by merging the
5
+ * hardcoded `ALLOWED_AGENTS` with any additional agents discovered dynamically
6
+ * via `client.app.agents()`. Custom agents loaded from registered agent
7
+ * directories appear here alongside built-ins.
8
+ *
9
+ * Results are cached per session for 30s to avoid redundant SDK IPC calls.
10
+ *
11
+ * Falls back to `ALLOWED_AGENTS` alone if the dynamic lookup fails.
12
+ *
13
+ * @param client - The plugin client with access to the agent registry
14
+ * @param sessionId - Optional session ID for cache scoping
15
+ * @returns Array of lowercase callable agent names (excludes primary-mode agents)
16
+ */
17
+ export declare function resolveCallableAgents(client: PluginInput["client"], sessionId?: string): Promise<string[]>;
@@ -1,6 +1,7 @@
1
1
  import type { CallOmoAgentArgs } from "./types";
2
2
  import type { BackgroundManager } from "../../features/background-agent";
3
3
  import type { PluginInput } from "@opencode-ai/plugin";
4
+ import type { DelegatedModelConfig } from "../../shared/model-resolution-types";
4
5
  import type { FallbackEntry } from "../../shared/model-requirements";
5
6
  export declare function executeBackground(args: CallOmoAgentArgs, toolContext: {
6
7
  sessionID: string;
@@ -11,4 +12,4 @@ export declare function executeBackground(args: CallOmoAgentArgs, toolContext: {
11
12
  title?: string;
12
13
  metadata?: Record<string, unknown>;
13
14
  }) => void;
14
- }, manager: BackgroundManager, client: PluginInput["client"], fallbackChain?: FallbackEntry[]): Promise<string>;
15
+ }, manager: BackgroundManager, client: PluginInput["client"], fallbackChain?: FallbackEntry[], model?: DelegatedModelConfig): Promise<string>;
@@ -1,2 +1,2 @@
1
1
  export declare const ALLOWED_AGENTS: readonly ["explore", "librarian", "oracle", "hephaestus", "metis", "momus", "multimodal-looker"];
2
- export declare const CALL_OMO_AGENT_DESCRIPTION = "Spawn explore/librarian agent. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nAvailable: {agents}\n\nPass `session_id=<id>` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use `background_output` for async results.";
2
+ export declare const CALL_OMO_AGENT_DESCRIPTION = "Spawn explore/librarian agent or custom agents. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nBuilt-in agents:\n{agents}\n\nCustom agents registered via user or project agent directories are also supported.\n\nPass `session_id=<id>` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use `background_output` for async results.";
@@ -1,6 +1,6 @@
1
1
  import type { CallOmoAgentArgs } from "./types";
2
2
  import type { PluginInput } from "@opencode-ai/plugin";
3
- import { clearSessionFallbackChain, setSessionFallbackChain } from "../../hooks/model-fallback/hook";
3
+ import type { DelegatedModelConfig } from "../../shared/model-resolution-types";
4
4
  import type { FallbackEntry } from "../../shared/model-requirements";
5
5
  import { waitForCompletion } from "./completion-poller";
6
6
  import { processMessages } from "./message-processor";
@@ -9,8 +9,8 @@ type ExecuteSyncDeps = {
9
9
  createOrGetSession: typeof createOrGetSession;
10
10
  waitForCompletion: typeof waitForCompletion;
11
11
  processMessages: typeof processMessages;
12
- setSessionFallbackChain: typeof setSessionFallbackChain;
13
- clearSessionFallbackChain: typeof clearSessionFallbackChain;
12
+ setSessionFallbackChain: (sessionID: string, fallbackChain: FallbackEntry[] | undefined) => void;
13
+ clearSessionFallbackChain: (sessionID: string) => void;
14
14
  };
15
15
  type SpawnReservation = {
16
16
  commit: () => number;
@@ -25,5 +25,5 @@ export declare function executeSync(args: CallOmoAgentArgs, toolContext: {
25
25
  title?: string;
26
26
  metadata?: Record<string, unknown>;
27
27
  }) => void | Promise<void>;
28
- }, ctx: PluginInput, deps?: ExecuteSyncDeps, fallbackChain?: FallbackEntry[], spawnReservation?: SpawnReservation): Promise<string>;
28
+ }, ctx: PluginInput, deps?: ExecuteSyncDeps, fallbackChain?: FallbackEntry[], spawnReservation?: SpawnReservation, model?: DelegatedModelConfig): Promise<string>;
29
29
  export {};
@@ -1,4 +1,5 @@
1
1
  import { type PluginInput, type ToolDefinition } from "@opencode-ai/plugin";
2
2
  import type { BackgroundManager } from "../../features/background-agent";
3
+ import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
3
4
  import type { CategoriesConfig, AgentOverrides } from "../../config/schema";
4
- export declare function createCallOmoAgent(ctx: PluginInput, backgroundManager: BackgroundManager, disabledAgents?: string[], agentOverrides?: AgentOverrides, userCategories?: CategoriesConfig): ToolDefinition;
5
+ export declare function createCallOmoAgent(ctx: PluginInput, backgroundManager: BackgroundManager, disabledAgents?: string[], agentOverrides?: AgentOverrides, userCategories?: CategoriesConfig, modelFallbackControllerAccessor?: ModelFallbackControllerAccessor): ToolDefinition;
@@ -0,0 +1,2 @@
1
+ import type { BuiltinCategoryDefinition } from "./builtin-category-definition";
2
+ export declare const ANTHROPIC_CATEGORIES: BuiltinCategoryDefinition[];
@@ -0,0 +1,4 @@
1
+ import type { CategoryConfig } from "../../config/schema";
2
+ export declare const DEFAULT_CATEGORIES: Record<string, CategoryConfig>;
3
+ export declare const CATEGORY_PROMPT_APPENDS: Record<string, string>;
4
+ export declare const CATEGORY_DESCRIPTIONS: Record<string, string>;
@@ -0,0 +1,7 @@
1
+ import type { CategoryConfig } from "../../config/schema";
2
+ export type BuiltinCategoryDefinition = {
3
+ name: string;
4
+ config: CategoryConfig;
5
+ description: string;
6
+ promptAppend: string;
7
+ };
@@ -1,16 +1,5 @@
1
- import type { CategoryConfig } from "../../config/schema";
2
1
  import type { AvailableCategory, AvailableSkill } from "../../agents/dynamic-agent-prompt-builder";
3
- export declare const VISUAL_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on VISUAL/UI tasks.\n\n<DESIGN_SYSTEM_WORKFLOW_MANDATE>\n## YOU ARE A VISUAL ENGINEER. FOLLOW THIS WORKFLOW OR YOUR OUTPUT IS REJECTED.\n\n**YOUR FAILURE MODE**: You skip design system analysis and jump straight to writing components with hardcoded colors, arbitrary spacing, and ad-hoc font sizes. The result is INCONSISTENT GARBAGE that looks like 5 different people built it. THIS STOPS NOW.\n\n**EVERY visual task follows this EXACT workflow. VIOLATION = BROKEN OUTPUT.**\n\n### PHASE 1: ANALYZE THE DESIGN SYSTEM (MANDATORY FIRST ACTION)\n\n**BEFORE writing a SINGLE line of CSS, HTML, JSX, Svelte, or component code \u2014 you MUST:**\n\n1. **SEARCH for the design system.** Use Grep, Glob, Read \u2014 actually LOOK:\n - Design tokens: colors, spacing, typography, shadows, border-radii\n - Theme files: CSS variables, Tailwind config, `theme.ts`, styled-components theme, design tokens file\n - Shared/base components: Button, Card, Input, Layout primitives\n - Existing UI patterns: How are pages structured? What spacing grid? What color usage?\n\n2. **READ at minimum 5-10 existing UI components.** Understand:\n - Naming conventions (BEM? Atomic? Utility-first? Component-scoped?)\n - Spacing system (4px grid? 8px? Tailwind scale? CSS variables?)\n - Color usage (semantic tokens? Direct hex? Theme references?)\n - Typography scale (heading levels, body, caption \u2014 how many? What font stack?)\n - Component composition patterns (slots? children? compound components?)\n\n**DO NOT proceed to Phase 2 until you can answer ALL of these. If you cannot, you have not explored enough. EXPLORE MORE.**\n\n### PHASE 2: NO DESIGN SYSTEM? BUILD ONE. NOW.\n\nIf Phase 1 reveals NO coherent design system (or scattered, inconsistent patterns):\n\n1. **STOP. Do NOT build the requested UI yet.**\n2. **Extract what exists** \u2014 even inconsistent patterns have salvageable decisions.\n3. **Create a minimal design system FIRST:**\n - Color palette: primary, secondary, neutral, semantic (success/warning/error/info)\n - Typography scale: heading levels (h1-h4 minimum), body, small, caption\n - Spacing scale: consistent increments (4px or 8px base)\n - Border radii, shadows, transitions \u2014 systematic, not random\n - Component primitives: the reusable building blocks\n4. **Commit/save the design system, THEN proceed to Phase 3.**\n\nA design system is NOT optional overhead. It is the FOUNDATION. Building UI without one is like building a house on sand. It WILL collapse into inconsistency.\n\n### PHASE 3: BUILD WITH THE SYSTEM. NEVER AROUND IT.\n\n**NOW and ONLY NOW** \u2014 implement the requested visual work:\n\n| Element | CORRECT | WRONG (WILL BE REJECTED) |\n|---------|---------|--------------------------|\n| Color | Design token / CSS variable | Hardcoded `#3b82f6`, `rgb(59,130,246)` |\n| Spacing | System value (`space-4`, `gap-md`, `var(--spacing-4)`) | Arbitrary `margin: 13px`, `padding: 7px` |\n| Typography | Scale value (`text-lg`, `heading-2`, token) | Ad-hoc `font-size: 17px` |\n| Component | Extend/compose from existing primitives | One-off div soup with inline styles |\n| Border radius | System token | Random `border-radius: 6px` |\n\n**IF the design requires something OUTSIDE the current system:**\n- **Extend the system FIRST** \u2014 add the new token/primitive\n- **THEN use the new token** in your component\n- **NEVER one-off override.** That is how design systems die.\n\n### PHASE 4: VERIFY BEFORE CLAIMING DONE\n\nBEFORE reporting visual work as complete, answer these:\n\n- [ ] Does EVERY color reference a design token or CSS variable?\n- [ ] Does EVERY spacing use the system scale?\n- [ ] Does EVERY component follow the existing composition pattern?\n- [ ] Would a designer see CONSISTENCY across old and new components?\n- [ ] Are there ZERO hardcoded magic numbers for visual properties?\n\n**If ANY answer is NO \u2014 FIX IT. You are NOT done.**\n\n</DESIGN_SYSTEM_WORKFLOW_MANDATE>\n\n<DESIGN_QUALITY>\nDesign-first mindset (AFTER design system is established):\n- Bold aesthetic choices over safe defaults\n- Unexpected layouts, asymmetry, grid-breaking elements\n- Distinctive typography (avoid: Arial, Inter, Roboto, Space Grotesk)\n- Cohesive color palettes with sharp accents\n- High-impact animations with staggered reveals\n- Atmosphere: gradient meshes, noise textures, layered transparencies\n\nAVOID: Generic fonts, purple gradients on white, predictable layouts, cookie-cutter patterns.\n</DESIGN_QUALITY>\n</Category_Context>";
4
- export declare const ULTRABRAIN_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on DEEP LOGICAL REASONING / COMPLEX ARCHITECTURE tasks.\n\n**CRITICAL - CODE STYLE REQUIREMENTS (NON-NEGOTIABLE)**:\n1. BEFORE writing ANY code, SEARCH the existing codebase to find similar patterns/styles\n2. Your code MUST match the project's existing conventions - blend in seamlessly\n3. Write READABLE code that humans can easily understand - no clever tricks\n4. If unsure about style, explore more files until you find the pattern\n\nStrategic advisor mindset:\n- Bias toward simplicity: least complex solution that fulfills requirements\n- Leverage existing code/patterns over new components\n- Prioritize developer experience and maintainability\n- One clear recommendation with effort estimate (Quick/Short/Medium/Large)\n- Signal when advanced approach warranted\n\nResponse format:\n- Bottom line (2-3 sentences)\n- Action plan (numbered steps)\n- Risks and mitigations (if relevant)\n</Category_Context>";
5
- export declare const ARTISTRY_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on HIGHLY CREATIVE / ARTISTIC tasks.\n\nArtistic genius mindset:\n- Push far beyond conventional boundaries\n- Explore radical, unconventional directions\n- Surprise and delight: unexpected twists, novel combinations\n- Rich detail and vivid expression\n- Break patterns deliberately when it serves the creative vision\n\nApproach:\n- Generate diverse, bold options first\n- Embrace ambiguity and wild experimentation\n- Balance novelty with coherence\n- This is for tasks requiring exceptional creativity\n</Category_Context>";
6
- export declare const QUICK_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on SMALL / QUICK tasks.\n\nEfficient execution mindset:\n- Fast, focused, minimal overhead\n- Get to the point immediately\n- No over-engineering\n- Simple solutions for simple problems\n\nApproach:\n- Minimal viable implementation\n- Skip unnecessary abstractions\n- Direct and concise\n</Category_Context>\n\n<Caller_Warning>\nTHIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.4-mini).\n\nThe model executing this task is optimized for speed over depth. Your prompt MUST be:\n\n**EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:\n1. MUST DO: List every required action as atomic, numbered steps\n2. MUST NOT DO: Explicitly forbid likely mistakes and deviations\n3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples\n\n**WHY THIS MATTERS:**\n- Smaller models benefit from explicit guardrails\n- Vague instructions may lead to unpredictable results\n- Implicit expectations may be missed\n**PROMPT STRUCTURE (MANDATORY):**\n```\nTASK: [One-sentence goal]\n\nMUST DO:\n1. [Specific action with exact details]\n2. [Another specific action]\n...\n\nMUST NOT DO:\n- [Forbidden action + why]\n- [Another forbidden action]\n...\n\nEXPECTED OUTPUT:\n- [Exact deliverable description]\n- [Success criteria / verification method]\n```\n\nIf your prompt lacks this structure, REWRITE IT before delegating.\n</Caller_Warning>";
7
- export declare const UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on tasks that don't fit specific categories but require moderate effort.\n\n<Selection_Gate>\nBEFORE selecting this category, VERIFY ALL conditions:\n1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)\n2. Task requires more than trivial effort but is NOT system-wide\n3. Scope is contained within a few files/modules\n\nIf task fits ANY other category, DO NOT select unspecified-low.\nThis is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.\n</Selection_Gate>\n</Category_Context>\n\n<Caller_Warning>\nTHIS CATEGORY USES A MID-TIER MODEL (claude-sonnet-4-6).\n\n**PROVIDE CLEAR STRUCTURE:**\n1. MUST DO: Enumerate required actions explicitly\n2. MUST NOT DO: State forbidden actions to prevent scope creep\n3. EXPECTED OUTPUT: Define concrete success criteria\n</Caller_Warning>";
8
- export declare const UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on tasks that don't fit specific categories but require substantial effort.\n\n<Selection_Gate>\nBEFORE selecting this category, VERIFY ALL conditions:\n1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)\n2. Task requires substantial effort across multiple systems/modules\n3. Changes have broad impact or require careful coordination\n4. NOT just \"complex\" - must be genuinely unclassifiable AND high-effort\n\nIf task fits ANY other category, DO NOT select unspecified-high.\nIf task is unclassifiable but moderate-effort, use unspecified-low instead.\n</Selection_Gate>\n</Category_Context>";
9
- export declare const WRITING_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on WRITING / PROSE tasks.\n\nWordsmith mindset:\n- Clear, flowing prose\n- Appropriate tone and voice\n- Engaging and readable\n- Proper structure and organization\n\nApproach:\n- Understand the audience\n- Draft with care\n- Polish for clarity and impact\n- Documentation, READMEs, articles, technical writing\n\nANTI-AI-SLOP RULES (NON-NEGOTIABLE):\n- NEVER use em dashes (\u2014) or en dashes (\u2013). Use commas, periods, ellipses, or line breaks instead. Zero tolerance.\n- Remove AI-sounding phrases: \"delve\", \"it's important to note\", \"I'd be happy to\", \"certainly\", \"please don't hesitate\", \"leverage\", \"utilize\", \"in order to\", \"moving forward\", \"circle back\", \"at the end of the day\", \"robust\", \"streamline\", \"facilitate\"\n- Pick plain words. \"Use\" not \"utilize\". \"Start\" not \"commence\". \"Help\" not \"facilitate\".\n- Use contractions naturally: \"don't\" not \"do not\", \"it's\" not \"it is\".\n- Vary sentence length. Don't make every sentence the same length.\n- NEVER start consecutive sentences with the same word.\n- No filler openings: skip \"In today's world...\", \"As we all know...\", \"It goes without saying...\"\n- Write like a human, not a corporate template.\n</Category_Context>";
10
- export declare const DEEP_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on GOAL-ORIENTED AUTONOMOUS tasks.\n\n**CRITICAL - AUTONOMOUS EXECUTION MINDSET (NON-NEGOTIABLE)**:\nYou are NOT an interactive assistant. You are an autonomous problem-solver.\n\n**BEFORE making ANY changes**:\n1. SILENTLY explore the codebase extensively (5-15 minutes of reading is normal)\n2. Read related files, trace dependencies, understand the full context\n3. Build a complete mental model of the problem space\n4. DO NOT ask clarifying questions - the goal is already defined\n\n**Autonomous executor mindset**:\n- You receive a GOAL. When the goal includes numbered steps or phases, treat them as one atomic task broken into sub-steps - NOT as separate independent tasks.\n- Figure out HOW to achieve the goal yourself\n- Thorough research before any action\n- Fix hairy problems that require deep understanding\n- Work independently without frequent check-ins\n\n**Single vs. multi-step context**:\n- Sub-steps of ONE goal (e.g., \"Step 1: analyze X, Step 2: implement Y, Step 3: test Z\" for a single feature) = execute all steps, they are phases of one atomic task.\n- Genuinely independent tasks (e.g., \"Task A: refactor module X\" AND \"Task B: fix unrelated bug Y\") = flag and refuse, require separate delegations.\n\n**Approach**:\n- Explore extensively, understand deeply, then act decisively\n- Prefer comprehensive solutions over quick patches\n- If the goal is unclear, make reasonable assumptions and proceed\n- Document your reasoning in code comments only when non-obvious\n\n**Response format**:\n- Minimal status updates (user trusts your autonomy)\n- Focus on results, not play-by-play progress\n- Report completion with summary of changes made\n</Category_Context>";
11
- export declare const DEFAULT_CATEGORIES: Record<string, CategoryConfig>;
12
- export declare const CATEGORY_PROMPT_APPENDS: Record<string, string>;
13
- export declare const CATEGORY_DESCRIPTIONS: Record<string, string>;
2
+ export { CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPENDS, DEFAULT_CATEGORIES, } from "./builtin-categories";
14
3
  /**
15
4
  * System prompt prepended to plan agent invocations.
16
5
  * Instructs the plan agent to first gather context via explore/librarian agents,
@@ -0,0 +1,3 @@
1
+ import type { CategoryConfig } from "../../config/schema";
2
+ import type { DelegatedModelConfig } from "./types";
3
+ export declare function applyCategoryParams(base: DelegatedModelConfig, config: CategoryConfig | undefined): DelegatedModelConfig;
@@ -1,5 +1,6 @@
1
1
  import type { BackgroundManager } from "../../features/background-agent";
2
- import type { CategoriesConfig, GitMasterConfig, BrowserAutomationProvider, AgentOverrides } from "../../config/schema";
2
+ import type { CategoriesConfig, GitMasterConfig, BrowserAutomationProvider, AgentOverrides, SisyphusAgentConfig } from "../../config/schema";
3
+ import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
3
4
  import type { OpencodeClient } from "./types";
4
5
  export interface ExecutorContext {
5
6
  manager: BackgroundManager;
@@ -10,6 +11,8 @@ export interface ExecutorContext {
10
11
  sisyphusJuniorModel?: string;
11
12
  browserProvider?: BrowserAutomationProvider;
12
13
  agentOverrides?: AgentOverrides;
14
+ sisyphusAgentConfig?: SisyphusAgentConfig;
15
+ modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
13
16
  onSyncSessionCreated?: (event: {
14
17
  sessionID: string;
15
18
  parentID: string;