oh-my-opencode 4.9.1 → 4.10.0

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 (220) hide show
  1. package/.agents/skills/opencode-qa/SKILL.md +1 -0
  2. package/.agents/skills/opencode-qa/scripts/lib/common.sh +39 -1
  3. package/.agents/skills/opencode-qa/scripts/lib/fake-openai-branches.mjs +39 -0
  4. package/.agents/skills/opencode-qa/scripts/lib/fake-openai-events.mjs +106 -0
  5. package/.agents/skills/opencode-qa/scripts/lib/fake-openai-server.mjs +117 -0
  6. package/.agents/skills/opencode-qa/scripts/serve-wake-split-probe.sh +716 -0
  7. package/.agents/skills/tech-debt-audit/SKILL.md +277 -0
  8. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
  9. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
  10. package/bin/platform.js +5 -0
  11. package/bin/platform.test.ts +56 -0
  12. package/dist/agents/atlas/agent.d.ts +4 -3
  13. package/dist/agents/gpt-apply-patch-guard.d.ts +2 -2
  14. package/dist/agents/hephaestus/agent.d.ts +5 -0
  15. package/dist/agents/hephaestus/index.d.ts +1 -1
  16. package/dist/agents/metis.d.ts +1 -0
  17. package/dist/agents/prometheus/system-prompt.d.ts +1 -1
  18. package/dist/agents/sisyphus/kimi-k2-7.d.ts +17 -0
  19. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  20. package/dist/agents/sisyphus-junior/kimi-k2-7.d.ts +11 -0
  21. package/dist/agents/types.d.ts +2 -2
  22. package/dist/cli/doctor/checks/codex-components.d.ts +13 -0
  23. package/dist/cli/doctor/checks/tui-plugin-config.d.ts +1 -0
  24. package/dist/cli/doctor/constants.d.ts +1 -1
  25. package/dist/cli/index.js +32329 -31437
  26. package/dist/cli/install-codex/codex-cleanup.d.ts +4 -0
  27. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +34 -0
  28. package/dist/cli/install-codex/link-cached-plugin-agents.d.ts +4 -0
  29. package/dist/cli/model-fallback.d.ts +1 -0
  30. package/dist/cli/provider-availability.d.ts +2 -0
  31. package/dist/cli-node/index.js +32329 -31437
  32. package/dist/config/schema/agent-overrides.d.ts +80 -16
  33. package/dist/config/schema/experimental.d.ts +1 -1
  34. package/dist/config/schema/hooks.d.ts +0 -1
  35. package/dist/config/schema/internal/permission.d.ts +5 -1
  36. package/dist/config/schema/oh-my-opencode-config.d.ts +76 -16
  37. package/dist/create-hooks.d.ts +0 -1
  38. package/dist/features/background-agent/index.d.ts +1 -1
  39. package/dist/features/background-agent/manager.d.ts +6 -0
  40. package/dist/features/background-agent/types.d.ts +2 -0
  41. package/dist/features/claude-code-plugin-loader/types.d.ts +3 -0
  42. package/dist/features/claude-code-session-state/state.d.ts +1 -0
  43. package/dist/features/skill-mcp-manager/manager.d.ts +11 -7
  44. package/dist/features/team-mode/team-mailbox/pending-delivery-recovery.d.ts +31 -0
  45. package/dist/features/team-mode/team-runtime/delete-team.d.ts +2 -1
  46. package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +2 -2
  47. package/dist/features/tmux-subagent/stale-tmux-resource-sweeper.d.ts +12 -0
  48. package/dist/features/tool-metadata-store/store.d.ts +5 -0
  49. package/dist/hooks/anthropic-context-window-limit-recovery/storage/constants.d.ts +3 -0
  50. package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/messages-reader.d.ts +1 -1
  51. package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/part-content.d.ts +1 -1
  52. package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/parts-reader.d.ts +1 -1
  53. package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery/storage}/types.d.ts +0 -13
  54. package/dist/hooks/auto-update-checker/checker/bundled-version.d.ts +1 -0
  55. package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
  56. package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
  57. package/dist/hooks/auto-update-checker/hook.d.ts +2 -1
  58. package/dist/hooks/claude-code-hooks/types.d.ts +4 -0
  59. package/dist/hooks/index.d.ts +0 -1
  60. package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +5 -0
  61. package/dist/index.js +6061 -3714
  62. package/dist/oh-my-opencode.schema.json +123 -18
  63. package/dist/plugin/build-team-idle-wake-hint-client.d.ts +2 -0
  64. package/dist/plugin/event-session-lifecycle.d.ts +0 -3
  65. package/dist/plugin/hooks/create-continuation-hooks.d.ts +0 -6
  66. package/dist/plugin/hooks/create-core-hooks.d.ts +0 -1
  67. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -2
  68. package/dist/shared/command-executor/execute-hook-command.d.ts +7 -0
  69. package/dist/shared/internal-initiator-marker.d.ts +7 -0
  70. package/dist/shared/live-server-route.d.ts +24 -0
  71. package/dist/shared/plugin-identity.d.ts +2 -2
  72. package/dist/shared/prompt-async-gate/prompt-message-state.d.ts +1 -0
  73. package/dist/shared/tmux/tmux-utils/server-health.d.ts +2 -1
  74. package/dist/shared/tmux/tmux-utils/stale-attach-pane-sweep.d.ts +16 -0
  75. package/dist/shared/tmux/tmux-utils.d.ts +1 -0
  76. package/dist/testing/create-plugin-module.d.ts +4 -0
  77. package/dist/tools/background-task/clients.d.ts +2 -0
  78. package/dist/tools/background-task/full-session-format.d.ts +1 -0
  79. package/dist/tools/background-task/types.d.ts +1 -0
  80. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +1 -1
  81. package/dist/tools/delegate-task/sync-session-lifecycle.d.ts +2 -1
  82. package/dist/tools/look-at/look-at-input-preparer.d.ts +6 -2
  83. package/dist/tools/look-at/look-at-prompt.d.ts +2 -1
  84. package/dist/tools/look-at/look-at-session-runner.d.ts +3 -4
  85. package/dist/tools/look-at/types.d.ts +2 -0
  86. package/dist/tools/session-manager/types.d.ts +1 -0
  87. package/dist/tools/skill-mcp/types.d.ts +1 -0
  88. package/package.json +14 -13
  89. package/packages/ast-grep-mcp/dist/cli.js +50 -17
  90. package/packages/lsp-daemon/dist/cli.js +8 -5
  91. package/packages/lsp-daemon/dist/index.js +8 -5
  92. package/packages/lsp-tools-mcp/dist/lsp/connection.js +1 -1
  93. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js +2 -2
  94. package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +10 -1
  95. package/packages/lsp-tools-mcp/dist/lsp/transport.js +6 -3
  96. package/packages/omo-codex/lazycodex-repository/.github/workflows/pr-source-guidance.yml +11 -12
  97. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  98. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2583 -0
  99. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +17 -0
  100. package/packages/omo-codex/plugin/components/bootstrap/manifests/ast-grep.json +22 -0
  101. package/packages/omo-codex/plugin/components/bootstrap/manifests/node.json +10 -0
  102. package/packages/omo-codex/plugin/components/bootstrap/package.json +20 -0
  103. package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +310 -0
  104. package/packages/omo-codex/plugin/components/bootstrap/scripts/build.mjs +35 -0
  105. package/packages/omo-codex/plugin/components/bootstrap/scripts/generate-manifests.mjs +115 -0
  106. package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +153 -0
  107. package/packages/omo-codex/plugin/components/bootstrap/src/download.ts +212 -0
  108. package/packages/omo-codex/plugin/components/bootstrap/src/environment.ts +286 -0
  109. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +108 -0
  110. package/packages/omo-codex/plugin/components/bootstrap/src/provision.ts +243 -0
  111. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +294 -0
  112. package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +279 -0
  113. package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +295 -0
  114. package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +375 -0
  115. package/packages/omo-codex/plugin/components/bootstrap/test/provision.test.ts +464 -0
  116. package/packages/omo-codex/plugin/components/bootstrap/tsconfig.json +25 -0
  117. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  118. package/packages/omo-codex/plugin/components/comment-checker/package.json +4 -4
  119. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  120. package/packages/omo-codex/plugin/components/git-bash/package.json +2 -2
  121. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +6 -10
  122. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  123. package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
  124. package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-tools.test.mjs +8 -3
  125. package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +5 -8
  126. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-cli.test.ts +24 -1
  127. package/packages/omo-codex/plugin/components/rules/bundled-rules/windows-git-bash.md +3 -1
  128. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  129. package/packages/omo-codex/plugin/components/rules/package.json +4 -4
  130. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +35 -1
  131. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  132. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +4 -4
  133. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  134. package/packages/omo-codex/plugin/components/telemetry/package.json +4 -4
  135. package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -1
  136. package/packages/omo-codex/plugin/components/ultrawork/directive.md +155 -99
  137. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  138. package/packages/omo-codex/plugin/components/ultrawork/package.json +4 -4
  139. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +19 -51
  140. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +46 -51
  141. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +19 -0
  142. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -1
  143. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +9 -1
  144. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -0
  145. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +18 -0
  146. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -3
  147. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +2 -2
  148. package/packages/omo-codex/plugin/components/ulw-loop/package.json +4 -4
  149. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +6 -2
  150. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +19 -0
  151. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -1
  152. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +6 -0
  153. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +26 -1
  154. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +89 -0
  155. package/packages/omo-codex/plugin/hooks/hooks.json +27 -16
  156. package/packages/omo-codex/plugin/package-lock.json +193 -193
  157. package/packages/omo-codex/plugin/package.json +1 -1
  158. package/packages/omo-codex/plugin/scripts/auto-update-state.d.mts +20 -0
  159. package/packages/omo-codex/plugin/scripts/auto-update.mjs +28 -8
  160. package/packages/omo-codex/plugin/scripts/build-components.mjs +36 -5
  161. package/packages/omo-codex/plugin/scripts/install-flow.mjs +43 -0
  162. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
  163. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
  164. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +7 -6
  165. package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
  166. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +19 -51
  167. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +46 -51
  168. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -0
  169. package/packages/omo-codex/plugin/test/auto-update.test.mjs +145 -0
  170. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +250 -0
  171. package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +166 -0
  172. package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +371 -0
  173. package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +134 -0
  174. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +249 -0
  175. package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +10 -1
  176. package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +46 -0
  177. package/packages/omo-codex/scripts/atomic-write.test.mjs +82 -0
  178. package/packages/omo-codex/scripts/install/agents.d.mts +18 -0
  179. package/packages/omo-codex/scripts/install/agents.mjs +78 -5
  180. package/packages/omo-codex/scripts/install/atomic-write.mjs +59 -0
  181. package/packages/omo-codex/scripts/install/bin-dir.d.mts +7 -0
  182. package/packages/omo-codex/scripts/install/bin-links.d.mts +18 -0
  183. package/packages/omo-codex/scripts/install/config.d.mts +35 -0
  184. package/packages/omo-codex/scripts/install/config.mjs +13 -3
  185. package/packages/omo-codex/scripts/install/git-bash-mcp-env.d.mts +5 -0
  186. package/packages/omo-codex/scripts/install/git-bash.d.mts +23 -0
  187. package/packages/omo-codex/scripts/install/hook-trust.d.mts +10 -0
  188. package/packages/omo-codex/scripts/install-agent-links.test.mjs +41 -0
  189. package/packages/omo-codex/scripts/install-local.mjs +3 -2
  190. package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
  191. package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
  192. package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +7 -6
  193. package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +1 -1
  194. package/dist/hooks/session-recovery/constants.d.ts +0 -4
  195. package/dist/hooks/session-recovery/detect-error-type.d.ts +0 -4
  196. package/dist/hooks/session-recovery/error-recovery.d.ts +0 -4
  197. package/dist/hooks/session-recovery/hook-types.d.ts +0 -22
  198. package/dist/hooks/session-recovery/hook.d.ts +0 -4
  199. package/dist/hooks/session-recovery/index.d.ts +0 -5
  200. package/dist/hooks/session-recovery/interrupted-idle-message-fetch-timeout.d.ts +0 -7
  201. package/dist/hooks/session-recovery/interrupted-tool-results.d.ts +0 -3
  202. package/dist/hooks/session-recovery/message-state.d.ts +0 -4
  203. package/dist/hooks/session-recovery/recover-thinking-block-order.d.ts +0 -5
  204. package/dist/hooks/session-recovery/recover-thinking-disabled-violation.d.ts +0 -5
  205. package/dist/hooks/session-recovery/recover-tool-result-missing.d.ts +0 -10
  206. package/dist/hooks/session-recovery/recover-unavailable-tool.d.ts +0 -5
  207. package/dist/hooks/session-recovery/resume.d.ts +0 -7
  208. package/dist/hooks/session-recovery/storage/latest-assistant-message.d.ts +0 -5
  209. package/dist/hooks/session-recovery/storage/orphan-thinking-search.d.ts +0 -2
  210. package/dist/hooks/session-recovery/storage/thinking-block-search.d.ts +0 -2
  211. package/dist/hooks/session-recovery/storage/thinking-prepend.d.ts +0 -33
  212. package/dist/hooks/session-recovery/storage/thinking-strip.d.ts +0 -11
  213. package/dist/hooks/session-recovery/storage.d.ts +0 -20
  214. package/dist/plugin/event-session-recovery.d.ts +0 -9
  215. package/dist/plugin/user-abort-interrupted-recovery-guard.d.ts +0 -6
  216. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-messages.d.ts +0 -0
  217. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-text.d.ts +0 -0
  218. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/message-dir.d.ts +0 -0
  219. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/part-id.d.ts +0 -0
  220. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/text-part-injector.d.ts +0 -0
@@ -98,7 +98,11 @@ export declare const AgentOverrideConfigSchema: z.ZodObject<{
98
98
  allow: "allow";
99
99
  deny: "deny";
100
100
  }>>;
101
- }, z.core.$strip>>;
101
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
102
+ ask: "ask";
103
+ allow: "allow";
104
+ deny: "deny";
105
+ }>>>>>;
102
106
  maxTokens: z.ZodOptional<z.ZodNumber>;
103
107
  thinking: z.ZodOptional<z.ZodObject<{
104
108
  type: z.ZodEnum<{
@@ -231,7 +235,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
231
235
  allow: "allow";
232
236
  deny: "deny";
233
237
  }>>;
234
- }, z.core.$strip>>;
238
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
239
+ ask: "ask";
240
+ allow: "allow";
241
+ deny: "deny";
242
+ }>>>>>;
235
243
  maxTokens: z.ZodOptional<z.ZodNumber>;
236
244
  thinking: z.ZodOptional<z.ZodObject<{
237
245
  type: z.ZodEnum<{
@@ -363,7 +371,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
363
371
  allow: "allow";
364
372
  deny: "deny";
365
373
  }>>;
366
- }, z.core.$strip>>;
374
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
375
+ ask: "ask";
376
+ allow: "allow";
377
+ deny: "deny";
378
+ }>>>>>;
367
379
  maxTokens: z.ZodOptional<z.ZodNumber>;
368
380
  thinking: z.ZodOptional<z.ZodObject<{
369
381
  type: z.ZodEnum<{
@@ -495,7 +507,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
495
507
  allow: "allow";
496
508
  deny: "deny";
497
509
  }>>;
498
- }, z.core.$strip>>;
510
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
511
+ ask: "ask";
512
+ allow: "allow";
513
+ deny: "deny";
514
+ }>>>>>;
499
515
  maxTokens: z.ZodOptional<z.ZodNumber>;
500
516
  thinking: z.ZodOptional<z.ZodObject<{
501
517
  type: z.ZodEnum<{
@@ -627,7 +643,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
627
643
  allow: "allow";
628
644
  deny: "deny";
629
645
  }>>;
630
- }, z.core.$strip>>;
646
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
647
+ ask: "ask";
648
+ allow: "allow";
649
+ deny: "deny";
650
+ }>>>>>;
631
651
  maxTokens: z.ZodOptional<z.ZodNumber>;
632
652
  thinking: z.ZodOptional<z.ZodObject<{
633
653
  type: z.ZodEnum<{
@@ -760,7 +780,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
760
780
  allow: "allow";
761
781
  deny: "deny";
762
782
  }>>;
763
- }, z.core.$strip>>;
783
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
784
+ ask: "ask";
785
+ allow: "allow";
786
+ deny: "deny";
787
+ }>>>>>;
764
788
  maxTokens: z.ZodOptional<z.ZodNumber>;
765
789
  thinking: z.ZodOptional<z.ZodObject<{
766
790
  type: z.ZodEnum<{
@@ -892,7 +916,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
892
916
  allow: "allow";
893
917
  deny: "deny";
894
918
  }>>;
895
- }, z.core.$strip>>;
919
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
920
+ ask: "ask";
921
+ allow: "allow";
922
+ deny: "deny";
923
+ }>>>>>;
896
924
  maxTokens: z.ZodOptional<z.ZodNumber>;
897
925
  thinking: z.ZodOptional<z.ZodObject<{
898
926
  type: z.ZodEnum<{
@@ -1024,7 +1052,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1024
1052
  allow: "allow";
1025
1053
  deny: "deny";
1026
1054
  }>>;
1027
- }, z.core.$strip>>;
1055
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1056
+ ask: "ask";
1057
+ allow: "allow";
1058
+ deny: "deny";
1059
+ }>>>>>;
1028
1060
  maxTokens: z.ZodOptional<z.ZodNumber>;
1029
1061
  thinking: z.ZodOptional<z.ZodObject<{
1030
1062
  type: z.ZodEnum<{
@@ -1156,7 +1188,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1156
1188
  allow: "allow";
1157
1189
  deny: "deny";
1158
1190
  }>>;
1159
- }, z.core.$strip>>;
1191
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1192
+ ask: "ask";
1193
+ allow: "allow";
1194
+ deny: "deny";
1195
+ }>>>>>;
1160
1196
  maxTokens: z.ZodOptional<z.ZodNumber>;
1161
1197
  thinking: z.ZodOptional<z.ZodObject<{
1162
1198
  type: z.ZodEnum<{
@@ -1288,7 +1324,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1288
1324
  allow: "allow";
1289
1325
  deny: "deny";
1290
1326
  }>>;
1291
- }, z.core.$strip>>;
1327
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1328
+ ask: "ask";
1329
+ allow: "allow";
1330
+ deny: "deny";
1331
+ }>>>>>;
1292
1332
  maxTokens: z.ZodOptional<z.ZodNumber>;
1293
1333
  thinking: z.ZodOptional<z.ZodObject<{
1294
1334
  type: z.ZodEnum<{
@@ -1420,7 +1460,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1420
1460
  allow: "allow";
1421
1461
  deny: "deny";
1422
1462
  }>>;
1423
- }, z.core.$strip>>;
1463
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1464
+ ask: "ask";
1465
+ allow: "allow";
1466
+ deny: "deny";
1467
+ }>>>>>;
1424
1468
  maxTokens: z.ZodOptional<z.ZodNumber>;
1425
1469
  thinking: z.ZodOptional<z.ZodObject<{
1426
1470
  type: z.ZodEnum<{
@@ -1552,7 +1596,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1552
1596
  allow: "allow";
1553
1597
  deny: "deny";
1554
1598
  }>>;
1555
- }, z.core.$strip>>;
1599
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1600
+ ask: "ask";
1601
+ allow: "allow";
1602
+ deny: "deny";
1603
+ }>>>>>;
1556
1604
  maxTokens: z.ZodOptional<z.ZodNumber>;
1557
1605
  thinking: z.ZodOptional<z.ZodObject<{
1558
1606
  type: z.ZodEnum<{
@@ -1684,7 +1732,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1684
1732
  allow: "allow";
1685
1733
  deny: "deny";
1686
1734
  }>>;
1687
- }, z.core.$strip>>;
1735
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1736
+ ask: "ask";
1737
+ allow: "allow";
1738
+ deny: "deny";
1739
+ }>>>>>;
1688
1740
  maxTokens: z.ZodOptional<z.ZodNumber>;
1689
1741
  thinking: z.ZodOptional<z.ZodObject<{
1690
1742
  type: z.ZodEnum<{
@@ -1816,7 +1868,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1816
1868
  allow: "allow";
1817
1869
  deny: "deny";
1818
1870
  }>>;
1819
- }, z.core.$strip>>;
1871
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1872
+ ask: "ask";
1873
+ allow: "allow";
1874
+ deny: "deny";
1875
+ }>>>>>;
1820
1876
  maxTokens: z.ZodOptional<z.ZodNumber>;
1821
1877
  thinking: z.ZodOptional<z.ZodObject<{
1822
1878
  type: z.ZodEnum<{
@@ -1948,7 +2004,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1948
2004
  allow: "allow";
1949
2005
  deny: "deny";
1950
2006
  }>>;
1951
- }, z.core.$strip>>;
2007
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
2008
+ ask: "ask";
2009
+ allow: "allow";
2010
+ deny: "deny";
2011
+ }>>>>>;
1952
2012
  maxTokens: z.ZodOptional<z.ZodNumber>;
1953
2013
  thinking: z.ZodOptional<z.ZodObject<{
1954
2014
  type: z.ZodEnum<{
@@ -2080,7 +2140,11 @@ export declare const AgentOverridesSchema: z.ZodObject<{
2080
2140
  allow: "allow";
2081
2141
  deny: "deny";
2082
2142
  }>>;
2083
- }, z.core.$strip>>;
2143
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
2144
+ ask: "ask";
2145
+ allow: "allow";
2146
+ deny: "deny";
2147
+ }>>>>>;
2084
2148
  maxTokens: z.ZodOptional<z.ZodNumber>;
2085
2149
  thinking: z.ZodOptional<z.ZodObject<{
2086
2150
  type: z.ZodEnum<{
@@ -1,7 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export declare const ExperimentalConfigSchema: z.ZodObject<{
3
3
  aggressive_truncation: z.ZodOptional<z.ZodBoolean>;
4
- auto_resume: z.ZodOptional<z.ZodBoolean>;
5
4
  preemptive_compaction: z.ZodOptional<z.ZodBoolean>;
6
5
  truncate_all_tool_outputs: z.ZodOptional<z.ZodBoolean>;
7
6
  dynamic_context_pruning: z.ZodOptional<z.ZodObject<{
@@ -37,5 +36,6 @@ export declare const ExperimentalConfigSchema: z.ZodObject<{
37
36
  hashline_edit: z.ZodOptional<z.ZodBoolean>;
38
37
  model_fallback_title: z.ZodOptional<z.ZodBoolean>;
39
38
  max_tools: z.ZodOptional<z.ZodNumber>;
39
+ disable_live_parent_wake_routing: z.ZodOptional<z.ZodBoolean>;
40
40
  }, z.core.$strip>;
41
41
  export type ExperimentalConfig = z.infer<typeof ExperimentalConfigSchema>;
@@ -4,7 +4,6 @@ export declare const HookNameSchema: z.ZodEnum<{
4
4
  "ralph-loop": "ralph-loop";
5
5
  "start-work": "start-work";
6
6
  "todo-continuation-enforcer": "todo-continuation-enforcer";
7
- "session-recovery": "session-recovery";
8
7
  "session-notification": "session-notification";
9
8
  "comment-checker": "comment-checker";
10
9
  "tool-output-truncator": "tool-output-truncator";
@@ -40,5 +40,9 @@ export declare const AgentPermissionSchema: z.ZodObject<{
40
40
  allow: "allow";
41
41
  deny: "deny";
42
42
  }>>;
43
- }, z.core.$strip>;
43
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
44
+ ask: "ask";
45
+ allow: "allow";
46
+ deny: "deny";
47
+ }>>>>;
44
48
  export type AgentPermission = z.infer<typeof AgentPermissionSchema>;
@@ -138,7 +138,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
138
138
  allow: "allow";
139
139
  deny: "deny";
140
140
  }>>;
141
- }, z.core.$strip>>;
141
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
142
+ ask: "ask";
143
+ allow: "allow";
144
+ deny: "deny";
145
+ }>>>>>;
142
146
  maxTokens: z.ZodOptional<z.ZodNumber>;
143
147
  thinking: z.ZodOptional<z.ZodObject<{
144
148
  type: z.ZodEnum<{
@@ -270,7 +274,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
270
274
  allow: "allow";
271
275
  deny: "deny";
272
276
  }>>;
273
- }, z.core.$strip>>;
277
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
278
+ ask: "ask";
279
+ allow: "allow";
280
+ deny: "deny";
281
+ }>>>>>;
274
282
  maxTokens: z.ZodOptional<z.ZodNumber>;
275
283
  thinking: z.ZodOptional<z.ZodObject<{
276
284
  type: z.ZodEnum<{
@@ -402,7 +410,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
402
410
  allow: "allow";
403
411
  deny: "deny";
404
412
  }>>;
405
- }, z.core.$strip>>;
413
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
414
+ ask: "ask";
415
+ allow: "allow";
416
+ deny: "deny";
417
+ }>>>>>;
406
418
  maxTokens: z.ZodOptional<z.ZodNumber>;
407
419
  thinking: z.ZodOptional<z.ZodObject<{
408
420
  type: z.ZodEnum<{
@@ -534,7 +546,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
534
546
  allow: "allow";
535
547
  deny: "deny";
536
548
  }>>;
537
- }, z.core.$strip>>;
549
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
550
+ ask: "ask";
551
+ allow: "allow";
552
+ deny: "deny";
553
+ }>>>>>;
538
554
  maxTokens: z.ZodOptional<z.ZodNumber>;
539
555
  thinking: z.ZodOptional<z.ZodObject<{
540
556
  type: z.ZodEnum<{
@@ -667,7 +683,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
667
683
  allow: "allow";
668
684
  deny: "deny";
669
685
  }>>;
670
- }, z.core.$strip>>;
686
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
687
+ ask: "ask";
688
+ allow: "allow";
689
+ deny: "deny";
690
+ }>>>>>;
671
691
  maxTokens: z.ZodOptional<z.ZodNumber>;
672
692
  thinking: z.ZodOptional<z.ZodObject<{
673
693
  type: z.ZodEnum<{
@@ -799,7 +819,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
799
819
  allow: "allow";
800
820
  deny: "deny";
801
821
  }>>;
802
- }, z.core.$strip>>;
822
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
823
+ ask: "ask";
824
+ allow: "allow";
825
+ deny: "deny";
826
+ }>>>>>;
803
827
  maxTokens: z.ZodOptional<z.ZodNumber>;
804
828
  thinking: z.ZodOptional<z.ZodObject<{
805
829
  type: z.ZodEnum<{
@@ -931,7 +955,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
931
955
  allow: "allow";
932
956
  deny: "deny";
933
957
  }>>;
934
- }, z.core.$strip>>;
958
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
959
+ ask: "ask";
960
+ allow: "allow";
961
+ deny: "deny";
962
+ }>>>>>;
935
963
  maxTokens: z.ZodOptional<z.ZodNumber>;
936
964
  thinking: z.ZodOptional<z.ZodObject<{
937
965
  type: z.ZodEnum<{
@@ -1063,7 +1091,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1063
1091
  allow: "allow";
1064
1092
  deny: "deny";
1065
1093
  }>>;
1066
- }, z.core.$strip>>;
1094
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1095
+ ask: "ask";
1096
+ allow: "allow";
1097
+ deny: "deny";
1098
+ }>>>>>;
1067
1099
  maxTokens: z.ZodOptional<z.ZodNumber>;
1068
1100
  thinking: z.ZodOptional<z.ZodObject<{
1069
1101
  type: z.ZodEnum<{
@@ -1195,7 +1227,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1195
1227
  allow: "allow";
1196
1228
  deny: "deny";
1197
1229
  }>>;
1198
- }, z.core.$strip>>;
1230
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1231
+ ask: "ask";
1232
+ allow: "allow";
1233
+ deny: "deny";
1234
+ }>>>>>;
1199
1235
  maxTokens: z.ZodOptional<z.ZodNumber>;
1200
1236
  thinking: z.ZodOptional<z.ZodObject<{
1201
1237
  type: z.ZodEnum<{
@@ -1327,7 +1363,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1327
1363
  allow: "allow";
1328
1364
  deny: "deny";
1329
1365
  }>>;
1330
- }, z.core.$strip>>;
1366
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1367
+ ask: "ask";
1368
+ allow: "allow";
1369
+ deny: "deny";
1370
+ }>>>>>;
1331
1371
  maxTokens: z.ZodOptional<z.ZodNumber>;
1332
1372
  thinking: z.ZodOptional<z.ZodObject<{
1333
1373
  type: z.ZodEnum<{
@@ -1459,7 +1499,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1459
1499
  allow: "allow";
1460
1500
  deny: "deny";
1461
1501
  }>>;
1462
- }, z.core.$strip>>;
1502
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1503
+ ask: "ask";
1504
+ allow: "allow";
1505
+ deny: "deny";
1506
+ }>>>>>;
1463
1507
  maxTokens: z.ZodOptional<z.ZodNumber>;
1464
1508
  thinking: z.ZodOptional<z.ZodObject<{
1465
1509
  type: z.ZodEnum<{
@@ -1591,7 +1635,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1591
1635
  allow: "allow";
1592
1636
  deny: "deny";
1593
1637
  }>>;
1594
- }, z.core.$strip>>;
1638
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1639
+ ask: "ask";
1640
+ allow: "allow";
1641
+ deny: "deny";
1642
+ }>>>>>;
1595
1643
  maxTokens: z.ZodOptional<z.ZodNumber>;
1596
1644
  thinking: z.ZodOptional<z.ZodObject<{
1597
1645
  type: z.ZodEnum<{
@@ -1723,7 +1771,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1723
1771
  allow: "allow";
1724
1772
  deny: "deny";
1725
1773
  }>>;
1726
- }, z.core.$strip>>;
1774
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1775
+ ask: "ask";
1776
+ allow: "allow";
1777
+ deny: "deny";
1778
+ }>>>>>;
1727
1779
  maxTokens: z.ZodOptional<z.ZodNumber>;
1728
1780
  thinking: z.ZodOptional<z.ZodObject<{
1729
1781
  type: z.ZodEnum<{
@@ -1855,7 +1907,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1855
1907
  allow: "allow";
1856
1908
  deny: "deny";
1857
1909
  }>>;
1858
- }, z.core.$strip>>;
1910
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
1911
+ ask: "ask";
1912
+ allow: "allow";
1913
+ deny: "deny";
1914
+ }>>>>>;
1859
1915
  maxTokens: z.ZodOptional<z.ZodNumber>;
1860
1916
  thinking: z.ZodOptional<z.ZodObject<{
1861
1917
  type: z.ZodEnum<{
@@ -1987,7 +2043,11 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1987
2043
  allow: "allow";
1988
2044
  deny: "deny";
1989
2045
  }>>;
1990
- }, z.core.$strip>>;
2046
+ }, z.core.$catchall<z.ZodOptional<z.ZodEnum<{
2047
+ ask: "ask";
2048
+ allow: "allow";
2049
+ deny: "deny";
2050
+ }>>>>>;
1991
2051
  maxTokens: z.ZodOptional<z.ZodNumber>;
1992
2052
  thinking: z.ZodOptional<z.ZodObject<{
1993
2053
  type: z.ZodEnum<{
@@ -2121,7 +2181,6 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
2121
2181
  }, z.core.$strip>>;
2122
2182
  experimental: z.ZodOptional<z.ZodObject<{
2123
2183
  aggressive_truncation: z.ZodOptional<z.ZodBoolean>;
2124
- auto_resume: z.ZodOptional<z.ZodBoolean>;
2125
2184
  preemptive_compaction: z.ZodOptional<z.ZodBoolean>;
2126
2185
  truncate_all_tool_outputs: z.ZodOptional<z.ZodBoolean>;
2127
2186
  dynamic_context_pruning: z.ZodOptional<z.ZodObject<{
@@ -2157,6 +2216,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
2157
2216
  hashline_edit: z.ZodOptional<z.ZodBoolean>;
2158
2217
  model_fallback_title: z.ZodOptional<z.ZodBoolean>;
2159
2218
  max_tools: z.ZodOptional<z.ZodNumber>;
2219
+ disable_live_parent_wake_routing: z.ZodOptional<z.ZodBoolean>;
2160
2220
  }, z.core.$strip>>;
2161
2221
  auto_update: z.ZodOptional<z.ZodBoolean>;
2162
2222
  skills: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{
@@ -64,7 +64,6 @@ export declare function createHooks(args: {
64
64
  notepadWriteGuard: ReturnType<typeof import("./hooks").createNotepadWriteGuardHook> | null;
65
65
  planFormatValidator: ReturnType<typeof import("./hooks").createPlanFormatValidatorHook> | null;
66
66
  preemptiveCompaction: ReturnType<typeof import("./hooks").createPreemptiveCompactionHook> | null;
67
- sessionRecovery: ReturnType<typeof import("./hooks").createSessionRecoveryHook> | null;
68
67
  sessionNotification: ReturnType<typeof import("./hooks").createSessionNotification> | null;
69
68
  thinkMode: ReturnType<typeof import("./hooks").createThinkModeHook> | null;
70
69
  modelFallback: ReturnType<typeof import("./hooks").createModelFallbackHook> | null;
@@ -1,4 +1,4 @@
1
1
  export * from "./types";
2
- export { BackgroundManager, type SubagentSessionCreatedEvent, type OnSubagentSessionCreated } from "./manager";
2
+ export { BackgroundManager, type SubagentSessionCreatedEvent, type OnSubagentSessionCreated, type SubagentSessionDeletedEvent, type OnSubagentSessionDeleted } from "./manager";
3
3
  export { waitForTaskSessionID } from "./wait-for-task-session";
4
4
  export type { WaitForTaskSessionIDOptions } from "./wait-for-task-session";
@@ -26,11 +26,16 @@ export interface SubagentSessionCreatedEvent {
26
26
  title: string;
27
27
  }
28
28
  export type OnSubagentSessionCreated = (event: SubagentSessionCreatedEvent) => Promise<void>;
29
+ export interface SubagentSessionDeletedEvent {
30
+ sessionID: string;
31
+ }
32
+ export type OnSubagentSessionDeleted = (event: SubagentSessionDeletedEvent) => Promise<void>;
29
33
  export interface BackgroundManagerConfig {
30
34
  pluginContext: PluginInput;
31
35
  config?: BackgroundTaskConfig;
32
36
  tmuxConfig?: TmuxConfig;
33
37
  onSubagentSessionCreated?: OnSubagentSessionCreated;
38
+ onSubagentSessionDeleted?: OnSubagentSessionDeleted;
34
39
  onShutdown?: () => void | Promise<void>;
35
40
  enableParentSessionNotifications?: boolean;
36
41
  modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
@@ -51,6 +56,7 @@ export declare class BackgroundManager {
51
56
  private config?;
52
57
  private tmuxEnabled;
53
58
  private onSubagentSessionCreated?;
59
+ private onSubagentSessionDeleted?;
54
60
  private onShutdown?;
55
61
  private queuesByKey;
56
62
  private processingKeys;
@@ -112,6 +112,8 @@ export interface LaunchInput {
112
112
  category?: string;
113
113
  sessionPermission?: SessionPermissionRule[];
114
114
  onSessionCreated?: (sessionId: string) => void | Promise<void>;
115
+ /** User tool overrides (ask/allow/deny) from category or agent config. Merged into launchTools before hardcoded restrictions. */
116
+ userPermission?: Record<string, "ask" | "allow" | "deny">;
115
117
  }
116
118
  export interface ResumeInput {
117
119
  sessionId: string;
@@ -103,6 +103,8 @@ export interface PluginManifest {
103
103
  export type HookEntry = {
104
104
  type: "command";
105
105
  command?: string;
106
+ allowedEnvVars?: string[];
107
+ pluginRoot?: string;
106
108
  } | {
107
109
  type: "prompt";
108
110
  prompt?: string;
@@ -115,6 +117,7 @@ export type HookEntry = {
115
117
  headers?: Record<string, string>;
116
118
  allowedEnvVars?: string[];
117
119
  timeout?: number;
120
+ pluginRoot?: string;
118
121
  };
119
122
  export interface HookMatcher {
120
123
  matcher?: string;
@@ -1,5 +1,6 @@
1
1
  export declare const subagentSessions: Set<string>;
2
2
  export declare const syncSubagentSessions: Set<string>;
3
+ export declare const handedBackSyncSessions: Set<string>;
3
4
  export declare function setMainSession(id: string | undefined): void;
4
5
  export declare function getMainSessionID(): string | undefined;
5
6
  export declare function registerAgentName(name: string): void;
@@ -1,21 +1,25 @@
1
1
  import type { Prompt, Resource, Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import type { ClaudeCodeMcpServer } from "../claude-code-mcp-loader/types";
3
3
  import type { McpClient, OAuthProviderFactory, SkillMcpClientInfo, SkillMcpServerContext } from "./types";
4
+ export interface SkillMcpClientOptions {
5
+ cdpUrl?: string;
6
+ }
7
+ export declare function buildSkillMcpClientKey(info: SkillMcpClientInfo, options?: SkillMcpClientOptions): string;
4
8
  export declare class SkillMcpManager {
5
9
  private readonly state;
6
10
  constructor(options?: {
7
11
  createOAuthProvider?: OAuthProviderFactory;
8
12
  });
9
13
  private getClientKey;
10
- getOrCreateClient(info: SkillMcpClientInfo, config: ClaudeCodeMcpServer): Promise<McpClient>;
14
+ getOrCreateClient(info: SkillMcpClientInfo, config: ClaudeCodeMcpServer, options?: SkillMcpClientOptions): Promise<McpClient>;
11
15
  disconnectSession(sessionID: string): Promise<void>;
12
16
  disconnectAll(): Promise<void>;
13
- listTools(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise<Tool[]>;
14
- listResources(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise<Resource[]>;
15
- listPrompts(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise<Prompt[]>;
16
- callTool(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record<string, unknown>): Promise<unknown>;
17
- readResource(info: SkillMcpClientInfo, context: SkillMcpServerContext, uri: string): Promise<unknown>;
18
- getPrompt(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record<string, string>): Promise<unknown>;
17
+ listTools(info: SkillMcpClientInfo, context: SkillMcpServerContext, options?: SkillMcpClientOptions): Promise<Tool[]>;
18
+ listResources(info: SkillMcpClientInfo, context: SkillMcpServerContext, options?: SkillMcpClientOptions): Promise<Resource[]>;
19
+ listPrompts(info: SkillMcpClientInfo, context: SkillMcpServerContext, options?: SkillMcpClientOptions): Promise<Prompt[]>;
20
+ callTool(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record<string, unknown>, options?: SkillMcpClientOptions): Promise<unknown>;
21
+ readResource(info: SkillMcpClientInfo, context: SkillMcpServerContext, uri: string, options?: SkillMcpClientOptions): Promise<unknown>;
22
+ getPrompt(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record<string, string>, options?: SkillMcpClientOptions): Promise<unknown>;
19
23
  private withOperationRetry;
20
24
  private getOrCreateClientWithRetry;
21
25
  getConnectedServers(): string[];
@@ -0,0 +1,31 @@
1
+ import type { TeamModeConfig } from "../../../config/schema/team-mode";
2
+ type SessionMessagesClient = {
3
+ session?: {
4
+ messages?: (input: {
5
+ path: {
6
+ id: string;
7
+ };
8
+ }) => Promise<unknown>;
9
+ };
10
+ };
11
+ /**
12
+ * Returns the subset of messageIds whose live-delivery envelope is present in the
13
+ * recipient session's message history. A live/poll-injected peer message embeds
14
+ * its messageId in the injected `<peer_message messageId="...">` envelope, so a
15
+ * message that genuinely reached the recipient's context is detectable here.
16
+ *
17
+ * Messages NOT returned were marked "pending" (the wake/dispatch was accepted) but
18
+ * never actually entered context - acking those would silently lose them.
19
+ *
20
+ * On any error (or when the client cannot read messages) returns an empty set,
21
+ * which is the loss-safe answer: callers requeue rather than ack.
22
+ */
23
+ export declare function findDeliveredMessageIds(client: SessionMessagesClient, sessionID: string, messageIds: readonly string[]): Promise<Set<string>>;
24
+ /**
25
+ * Returns reserved (`.delivering-<id>.json`) pending messages to the inbox as
26
+ * normal unread (`<id>.json`) files so the next poll-injection / wake-hint can
27
+ * re-deliver them. Used when a pending live delivery is found to have never
28
+ * reached the recipient's context.
29
+ */
30
+ export declare function requeuePendingLiveDeliveries(teamRunId: string, memberName: string, messageIds: readonly string[], config: TeamModeConfig): Promise<void>;
31
+ export {};
@@ -8,7 +8,8 @@ export type DeleteTeamDeps = {
8
8
  removeTeamLayout: typeof removeTeamLayout;
9
9
  log: typeof log;
10
10
  };
11
- export declare function deleteTeam(teamRunId: string, config: TeamModeConfig, tmuxMgr?: TmuxSessionManager, bgMgr?: BackgroundManager, options?: {
11
+ export type DeleteTeamBackgroundManager = Pick<BackgroundManager, "getTasksByParentSession" | "cancelTask">;
12
+ export declare function deleteTeam(teamRunId: string, config: TeamModeConfig, tmuxMgr?: TmuxSessionManager, bgMgr?: DeleteTeamBackgroundManager, options?: {
12
13
  force?: boolean;
13
14
  }, deps?: DeleteTeamDeps): Promise<{
14
15
  removedWorktrees: string[];
@@ -3,11 +3,11 @@ import type { AgentOverrides, CategoriesConfig } from "../../../config/schema";
3
3
  import { normalizeTeamSpecInput } from "../team-registry/loader";
4
4
  import { type TeamSpec } from "../types";
5
5
  export declare const TEAM_CREATE_USAGE = "team_create requires exactly one of teamName or inline_spec. Use team_create({ teamName: \"existing-team\" }) or team_create({ inline_spec: { name: \"team-name\", members: [{ name: \"worker\", category: \"quick\", prompt: \"Do the assigned work.\" }] } }).";
6
- export declare const TeamCreateArgsSchema: z.ZodObject<{
6
+ export declare const TeamCreateArgsSchema: z.ZodPreprocess<z.ZodObject<{
7
7
  teamName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8
8
  inline_spec: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
9
9
  leadSessionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10
- }, z.core.$strip>;
10
+ }, z.core.$strip>>;
11
11
  export type TeamCreateArgs = z.infer<typeof TeamCreateArgsSchema>;
12
12
  export type TeamCreateExecutorConfig = {
13
13
  userCategories?: CategoriesConfig;
@@ -0,0 +1,12 @@
1
+ import type { TmuxConfig } from "../../config/schema";
2
+ export type StaleTmuxResourceSweepReport = {
3
+ readonly killed: number;
4
+ readonly killedAttachPanes: number;
5
+ readonly killedIsolatedSessions: number;
6
+ };
7
+ export type StaleTmuxResourceSweepDeps = {
8
+ readonly isolation: TmuxConfig["isolation"];
9
+ readonly sweepStaleOmoAgentSessions: () => Promise<number>;
10
+ readonly sweepStaleOmoAttachPanes: () => Promise<number>;
11
+ };
12
+ export declare function sweepStaleTmuxResources(deps: StaleTmuxResourceSweepDeps): Promise<StaleTmuxResourceSweepReport>;
@@ -27,6 +27,11 @@ export declare function storeToolMetadata(sessionID: string, callID: string, dat
27
27
  /**
28
28
  * Consume stored metadata (one-time read, removes from store).
29
29
  * Called from tool.execute.after hook.
30
+ *
31
+ * For background/child sessions the after-hook's sessionID can diverge
32
+ * from the execute() sessionID, so an exact-key miss falls back to the
33
+ * callID alone - but only when exactly one session holds that callID,
34
+ * declining ambiguous cross-session collisions.
30
35
  */
31
36
  export declare function consumeToolMetadata(sessionID: string, callID: string): PendingToolMetadata | undefined;
32
37
  /**
@@ -0,0 +1,3 @@
1
+ export { PART_STORAGE } from "../../../shared";
2
+ export declare const THINKING_TYPES: Set<string>;
3
+ export declare const META_TYPES: Set<string>;
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { StoredMessageMeta } from "../types";
2
+ import type { StoredMessageMeta } from "./types";
3
3
  type OpencodeClient = PluginInput["client"];
4
4
  export declare function readMessages(sessionID: string): StoredMessageMeta[];
5
5
  export declare function readMessagesFromSDK(client: OpencodeClient, sessionID: string): Promise<StoredMessageMeta[]>;