oh-my-opencode 4.9.2 → 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.
- package/.agents/skills/opencode-qa/scripts/lib/common.sh +39 -1
- package/.agents/skills/tech-debt-audit/SKILL.md +277 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
- package/bin/platform.js +5 -0
- package/bin/platform.test.ts +56 -0
- package/dist/agents/atlas/agent.d.ts +4 -3
- package/dist/agents/gpt-apply-patch-guard.d.ts +2 -2
- package/dist/agents/hephaestus/agent.d.ts +5 -0
- package/dist/agents/hephaestus/index.d.ts +1 -1
- package/dist/agents/metis.d.ts +1 -0
- package/dist/agents/prometheus/system-prompt.d.ts +1 -1
- package/dist/agents/sisyphus/kimi-k2-7.d.ts +17 -0
- package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
- package/dist/agents/sisyphus-junior/kimi-k2-7.d.ts +11 -0
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/doctor/checks/codex-components.d.ts +13 -0
- package/dist/cli/doctor/checks/tui-plugin-config.d.ts +1 -0
- package/dist/cli/doctor/constants.d.ts +1 -1
- package/dist/cli/index.js +929 -291
- package/dist/cli/install-codex/codex-cleanup.d.ts +4 -0
- package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +34 -0
- package/dist/cli/install-codex/link-cached-plugin-agents.d.ts +4 -0
- package/dist/cli/model-fallback.d.ts +1 -0
- package/dist/cli/provider-availability.d.ts +2 -0
- package/dist/cli-node/index.js +929 -291
- package/dist/config/schema/agent-overrides.d.ts +80 -16
- package/dist/config/schema/experimental.d.ts +0 -1
- package/dist/config/schema/hooks.d.ts +0 -1
- package/dist/config/schema/internal/permission.d.ts +5 -1
- package/dist/config/schema/oh-my-opencode-config.d.ts +75 -16
- package/dist/create-hooks.d.ts +0 -1
- package/dist/features/background-agent/index.d.ts +1 -1
- package/dist/features/background-agent/manager.d.ts +6 -0
- package/dist/features/background-agent/types.d.ts +2 -0
- package/dist/features/claude-code-plugin-loader/types.d.ts +3 -0
- package/dist/features/claude-code-session-state/state.d.ts +1 -0
- package/dist/features/skill-mcp-manager/manager.d.ts +11 -7
- package/dist/features/team-mode/team-mailbox/pending-delivery-recovery.d.ts +31 -0
- package/dist/features/team-mode/team-runtime/delete-team.d.ts +2 -1
- package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +2 -2
- package/dist/features/tmux-subagent/stale-tmux-resource-sweeper.d.ts +12 -0
- package/dist/features/tool-metadata-store/store.d.ts +5 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/storage/constants.d.ts +3 -0
- package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/messages-reader.d.ts +1 -1
- package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/part-content.d.ts +1 -1
- package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/parts-reader.d.ts +1 -1
- package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery/storage}/types.d.ts +0 -13
- package/dist/hooks/auto-update-checker/checker/bundled-version.d.ts +1 -0
- package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
- package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
- package/dist/hooks/auto-update-checker/hook.d.ts +2 -1
- package/dist/hooks/claude-code-hooks/types.d.ts +4 -0
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +5 -0
- package/dist/index.js +2991 -2367
- package/dist/oh-my-opencode.schema.json +120 -18
- package/dist/plugin/build-team-idle-wake-hint-client.d.ts +2 -0
- package/dist/plugin/event-session-lifecycle.d.ts +0 -3
- package/dist/plugin/hooks/create-continuation-hooks.d.ts +0 -6
- package/dist/plugin/hooks/create-core-hooks.d.ts +0 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +1 -2
- package/dist/shared/command-executor/execute-hook-command.d.ts +7 -0
- package/dist/shared/plugin-identity.d.ts +2 -2
- package/dist/shared/tmux/tmux-utils/server-health.d.ts +2 -1
- package/dist/shared/tmux/tmux-utils/stale-attach-pane-sweep.d.ts +16 -0
- package/dist/shared/tmux/tmux-utils.d.ts +1 -0
- package/dist/tools/background-task/clients.d.ts +2 -0
- package/dist/tools/background-task/full-session-format.d.ts +1 -0
- package/dist/tools/background-task/types.d.ts +1 -0
- package/dist/tools/delegate-task/sync-prompt-sender.d.ts +1 -1
- package/dist/tools/delegate-task/sync-session-lifecycle.d.ts +2 -1
- package/dist/tools/look-at/look-at-input-preparer.d.ts +6 -2
- package/dist/tools/look-at/look-at-prompt.d.ts +2 -1
- package/dist/tools/look-at/look-at-session-runner.d.ts +3 -4
- package/dist/tools/look-at/types.d.ts +2 -0
- package/dist/tools/session-manager/types.d.ts +1 -0
- package/dist/tools/skill-mcp/types.d.ts +1 -0
- package/package.json +14 -13
- package/packages/ast-grep-mcp/dist/cli.js +50 -17
- package/packages/lsp-daemon/dist/cli.js +8 -5
- package/packages/lsp-daemon/dist/index.js +8 -5
- package/packages/lsp-tools-mcp/dist/lsp/connection.js +1 -1
- package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js +2 -2
- package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +10 -1
- package/packages/lsp-tools-mcp/dist/lsp/transport.js +6 -3
- package/packages/omo-codex/lazycodex-repository/.github/workflows/pr-source-guidance.yml +11 -12
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2583 -0
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +17 -0
- package/packages/omo-codex/plugin/components/bootstrap/manifests/ast-grep.json +22 -0
- package/packages/omo-codex/plugin/components/bootstrap/manifests/node.json +10 -0
- package/packages/omo-codex/plugin/components/bootstrap/package.json +20 -0
- package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +310 -0
- package/packages/omo-codex/plugin/components/bootstrap/scripts/build.mjs +35 -0
- package/packages/omo-codex/plugin/components/bootstrap/scripts/generate-manifests.mjs +115 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +153 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/download.ts +212 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/environment.ts +286 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +108 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/provision.ts +243 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +294 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +279 -0
- package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +295 -0
- package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +375 -0
- package/packages/omo-codex/plugin/components/bootstrap/test/provision.test.ts +464 -0
- package/packages/omo-codex/plugin/components/bootstrap/tsconfig.json +25 -0
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +4 -4
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +6 -10
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
- package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-tools.test.mjs +8 -3
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +5 -8
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook-cli.test.ts +24 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/windows-git-bash.md +3 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +4 -4
- package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +35 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +4 -4
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +155 -99
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +19 -51
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +46 -51
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +19 -0
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +9 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +18 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -3
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +6 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +19 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +26 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +89 -0
- package/packages/omo-codex/plugin/hooks/hooks.json +27 -16
- package/packages/omo-codex/plugin/package-lock.json +193 -193
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/auto-update-state.d.mts +20 -0
- package/packages/omo-codex/plugin/scripts/auto-update.mjs +28 -8
- package/packages/omo-codex/plugin/scripts/build-components.mjs +36 -5
- package/packages/omo-codex/plugin/scripts/install-flow.mjs +43 -0
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
- package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +7 -6
- package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +19 -51
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +46 -51
- package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +145 -0
- package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +250 -0
- package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +166 -0
- package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +371 -0
- package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +134 -0
- package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +249 -0
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +10 -1
- package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +46 -0
- package/packages/omo-codex/scripts/atomic-write.test.mjs +82 -0
- package/packages/omo-codex/scripts/install/agents.d.mts +18 -0
- package/packages/omo-codex/scripts/install/agents.mjs +78 -5
- package/packages/omo-codex/scripts/install/atomic-write.mjs +59 -0
- package/packages/omo-codex/scripts/install/bin-dir.d.mts +7 -0
- package/packages/omo-codex/scripts/install/bin-links.d.mts +18 -0
- package/packages/omo-codex/scripts/install/config.d.mts +35 -0
- package/packages/omo-codex/scripts/install/config.mjs +13 -3
- package/packages/omo-codex/scripts/install/git-bash-mcp-env.d.mts +5 -0
- package/packages/omo-codex/scripts/install/git-bash.d.mts +23 -0
- package/packages/omo-codex/scripts/install/hook-trust.d.mts +10 -0
- package/packages/omo-codex/scripts/install-agent-links.test.mjs +41 -0
- package/packages/omo-codex/scripts/install-local.mjs +3 -2
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +7 -6
- package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/dist/hooks/session-recovery/constants.d.ts +0 -4
- package/dist/hooks/session-recovery/detect-error-type.d.ts +0 -4
- package/dist/hooks/session-recovery/error-recovery.d.ts +0 -4
- package/dist/hooks/session-recovery/hook-types.d.ts +0 -22
- package/dist/hooks/session-recovery/hook.d.ts +0 -4
- package/dist/hooks/session-recovery/index.d.ts +0 -5
- package/dist/hooks/session-recovery/interrupted-idle-message-fetch-timeout.d.ts +0 -7
- package/dist/hooks/session-recovery/interrupted-tool-results.d.ts +0 -3
- package/dist/hooks/session-recovery/message-state.d.ts +0 -4
- package/dist/hooks/session-recovery/recover-thinking-block-order.d.ts +0 -5
- package/dist/hooks/session-recovery/recover-thinking-disabled-violation.d.ts +0 -5
- package/dist/hooks/session-recovery/recover-tool-result-missing.d.ts +0 -10
- package/dist/hooks/session-recovery/recover-unavailable-tool.d.ts +0 -5
- package/dist/hooks/session-recovery/resume.d.ts +0 -7
- package/dist/hooks/session-recovery/storage/latest-assistant-message.d.ts +0 -5
- package/dist/hooks/session-recovery/storage/orphan-thinking-search.d.ts +0 -2
- package/dist/hooks/session-recovery/storage/thinking-block-search.d.ts +0 -2
- package/dist/hooks/session-recovery/storage/thinking-prepend.d.ts +0 -33
- package/dist/hooks/session-recovery/storage/thinking-strip.d.ts +0 -11
- package/dist/hooks/session-recovery/storage.d.ts +0 -20
- package/dist/plugin/event-session-recovery.d.ts +0 -9
- package/dist/plugin/user-abort-interrupted-recovery-guard.d.ts +0 -6
- /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-messages.d.ts +0 -0
- /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-text.d.ts +0 -0
- /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/message-dir.d.ts +0 -0
- /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/part-id.d.ts +0 -0
- /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/text-part-injector.d.ts +0 -0
|
@@ -390,7 +390,14 @@
|
|
|
390
390
|
]
|
|
391
391
|
}
|
|
392
392
|
},
|
|
393
|
-
"additionalProperties":
|
|
393
|
+
"additionalProperties": {
|
|
394
|
+
"type": "string",
|
|
395
|
+
"enum": [
|
|
396
|
+
"ask",
|
|
397
|
+
"allow",
|
|
398
|
+
"deny"
|
|
399
|
+
]
|
|
400
|
+
}
|
|
394
401
|
},
|
|
395
402
|
"maxTokens": {
|
|
396
403
|
"type": "number"
|
|
@@ -746,7 +753,14 @@
|
|
|
746
753
|
]
|
|
747
754
|
}
|
|
748
755
|
},
|
|
749
|
-
"additionalProperties":
|
|
756
|
+
"additionalProperties": {
|
|
757
|
+
"type": "string",
|
|
758
|
+
"enum": [
|
|
759
|
+
"ask",
|
|
760
|
+
"allow",
|
|
761
|
+
"deny"
|
|
762
|
+
]
|
|
763
|
+
}
|
|
750
764
|
},
|
|
751
765
|
"maxTokens": {
|
|
752
766
|
"type": "number"
|
|
@@ -1102,7 +1116,14 @@
|
|
|
1102
1116
|
]
|
|
1103
1117
|
}
|
|
1104
1118
|
},
|
|
1105
|
-
"additionalProperties":
|
|
1119
|
+
"additionalProperties": {
|
|
1120
|
+
"type": "string",
|
|
1121
|
+
"enum": [
|
|
1122
|
+
"ask",
|
|
1123
|
+
"allow",
|
|
1124
|
+
"deny"
|
|
1125
|
+
]
|
|
1126
|
+
}
|
|
1106
1127
|
},
|
|
1107
1128
|
"maxTokens": {
|
|
1108
1129
|
"type": "number"
|
|
@@ -1458,7 +1479,14 @@
|
|
|
1458
1479
|
]
|
|
1459
1480
|
}
|
|
1460
1481
|
},
|
|
1461
|
-
"additionalProperties":
|
|
1482
|
+
"additionalProperties": {
|
|
1483
|
+
"type": "string",
|
|
1484
|
+
"enum": [
|
|
1485
|
+
"ask",
|
|
1486
|
+
"allow",
|
|
1487
|
+
"deny"
|
|
1488
|
+
]
|
|
1489
|
+
}
|
|
1462
1490
|
},
|
|
1463
1491
|
"maxTokens": {
|
|
1464
1492
|
"type": "number"
|
|
@@ -1817,7 +1845,14 @@
|
|
|
1817
1845
|
]
|
|
1818
1846
|
}
|
|
1819
1847
|
},
|
|
1820
|
-
"additionalProperties":
|
|
1848
|
+
"additionalProperties": {
|
|
1849
|
+
"type": "string",
|
|
1850
|
+
"enum": [
|
|
1851
|
+
"ask",
|
|
1852
|
+
"allow",
|
|
1853
|
+
"deny"
|
|
1854
|
+
]
|
|
1855
|
+
}
|
|
1821
1856
|
},
|
|
1822
1857
|
"maxTokens": {
|
|
1823
1858
|
"type": "number"
|
|
@@ -2173,7 +2208,14 @@
|
|
|
2173
2208
|
]
|
|
2174
2209
|
}
|
|
2175
2210
|
},
|
|
2176
|
-
"additionalProperties":
|
|
2211
|
+
"additionalProperties": {
|
|
2212
|
+
"type": "string",
|
|
2213
|
+
"enum": [
|
|
2214
|
+
"ask",
|
|
2215
|
+
"allow",
|
|
2216
|
+
"deny"
|
|
2217
|
+
]
|
|
2218
|
+
}
|
|
2177
2219
|
},
|
|
2178
2220
|
"maxTokens": {
|
|
2179
2221
|
"type": "number"
|
|
@@ -2529,7 +2571,14 @@
|
|
|
2529
2571
|
]
|
|
2530
2572
|
}
|
|
2531
2573
|
},
|
|
2532
|
-
"additionalProperties":
|
|
2574
|
+
"additionalProperties": {
|
|
2575
|
+
"type": "string",
|
|
2576
|
+
"enum": [
|
|
2577
|
+
"ask",
|
|
2578
|
+
"allow",
|
|
2579
|
+
"deny"
|
|
2580
|
+
]
|
|
2581
|
+
}
|
|
2533
2582
|
},
|
|
2534
2583
|
"maxTokens": {
|
|
2535
2584
|
"type": "number"
|
|
@@ -2885,7 +2934,14 @@
|
|
|
2885
2934
|
]
|
|
2886
2935
|
}
|
|
2887
2936
|
},
|
|
2888
|
-
"additionalProperties":
|
|
2937
|
+
"additionalProperties": {
|
|
2938
|
+
"type": "string",
|
|
2939
|
+
"enum": [
|
|
2940
|
+
"ask",
|
|
2941
|
+
"allow",
|
|
2942
|
+
"deny"
|
|
2943
|
+
]
|
|
2944
|
+
}
|
|
2889
2945
|
},
|
|
2890
2946
|
"maxTokens": {
|
|
2891
2947
|
"type": "number"
|
|
@@ -3241,7 +3297,14 @@
|
|
|
3241
3297
|
]
|
|
3242
3298
|
}
|
|
3243
3299
|
},
|
|
3244
|
-
"additionalProperties":
|
|
3300
|
+
"additionalProperties": {
|
|
3301
|
+
"type": "string",
|
|
3302
|
+
"enum": [
|
|
3303
|
+
"ask",
|
|
3304
|
+
"allow",
|
|
3305
|
+
"deny"
|
|
3306
|
+
]
|
|
3307
|
+
}
|
|
3245
3308
|
},
|
|
3246
3309
|
"maxTokens": {
|
|
3247
3310
|
"type": "number"
|
|
@@ -3597,7 +3660,14 @@
|
|
|
3597
3660
|
]
|
|
3598
3661
|
}
|
|
3599
3662
|
},
|
|
3600
|
-
"additionalProperties":
|
|
3663
|
+
"additionalProperties": {
|
|
3664
|
+
"type": "string",
|
|
3665
|
+
"enum": [
|
|
3666
|
+
"ask",
|
|
3667
|
+
"allow",
|
|
3668
|
+
"deny"
|
|
3669
|
+
]
|
|
3670
|
+
}
|
|
3601
3671
|
},
|
|
3602
3672
|
"maxTokens": {
|
|
3603
3673
|
"type": "number"
|
|
@@ -3953,7 +4023,14 @@
|
|
|
3953
4023
|
]
|
|
3954
4024
|
}
|
|
3955
4025
|
},
|
|
3956
|
-
"additionalProperties":
|
|
4026
|
+
"additionalProperties": {
|
|
4027
|
+
"type": "string",
|
|
4028
|
+
"enum": [
|
|
4029
|
+
"ask",
|
|
4030
|
+
"allow",
|
|
4031
|
+
"deny"
|
|
4032
|
+
]
|
|
4033
|
+
}
|
|
3957
4034
|
},
|
|
3958
4035
|
"maxTokens": {
|
|
3959
4036
|
"type": "number"
|
|
@@ -4309,7 +4386,14 @@
|
|
|
4309
4386
|
]
|
|
4310
4387
|
}
|
|
4311
4388
|
},
|
|
4312
|
-
"additionalProperties":
|
|
4389
|
+
"additionalProperties": {
|
|
4390
|
+
"type": "string",
|
|
4391
|
+
"enum": [
|
|
4392
|
+
"ask",
|
|
4393
|
+
"allow",
|
|
4394
|
+
"deny"
|
|
4395
|
+
]
|
|
4396
|
+
}
|
|
4313
4397
|
},
|
|
4314
4398
|
"maxTokens": {
|
|
4315
4399
|
"type": "number"
|
|
@@ -4665,7 +4749,14 @@
|
|
|
4665
4749
|
]
|
|
4666
4750
|
}
|
|
4667
4751
|
},
|
|
4668
|
-
"additionalProperties":
|
|
4752
|
+
"additionalProperties": {
|
|
4753
|
+
"type": "string",
|
|
4754
|
+
"enum": [
|
|
4755
|
+
"ask",
|
|
4756
|
+
"allow",
|
|
4757
|
+
"deny"
|
|
4758
|
+
]
|
|
4759
|
+
}
|
|
4669
4760
|
},
|
|
4670
4761
|
"maxTokens": {
|
|
4671
4762
|
"type": "number"
|
|
@@ -5021,7 +5112,14 @@
|
|
|
5021
5112
|
]
|
|
5022
5113
|
}
|
|
5023
5114
|
},
|
|
5024
|
-
"additionalProperties":
|
|
5115
|
+
"additionalProperties": {
|
|
5116
|
+
"type": "string",
|
|
5117
|
+
"enum": [
|
|
5118
|
+
"ask",
|
|
5119
|
+
"allow",
|
|
5120
|
+
"deny"
|
|
5121
|
+
]
|
|
5122
|
+
}
|
|
5025
5123
|
},
|
|
5026
5124
|
"maxTokens": {
|
|
5027
5125
|
"type": "number"
|
|
@@ -5378,7 +5476,14 @@
|
|
|
5378
5476
|
]
|
|
5379
5477
|
}
|
|
5380
5478
|
},
|
|
5381
|
-
"additionalProperties":
|
|
5479
|
+
"additionalProperties": {
|
|
5480
|
+
"type": "string",
|
|
5481
|
+
"enum": [
|
|
5482
|
+
"ask",
|
|
5483
|
+
"allow",
|
|
5484
|
+
"deny"
|
|
5485
|
+
]
|
|
5486
|
+
}
|
|
5382
5487
|
},
|
|
5383
5488
|
"maxTokens": {
|
|
5384
5489
|
"type": "number"
|
|
@@ -5771,9 +5876,6 @@
|
|
|
5771
5876
|
"aggressive_truncation": {
|
|
5772
5877
|
"type": "boolean"
|
|
5773
5878
|
},
|
|
5774
|
-
"auto_resume": {
|
|
5775
|
-
"type": "boolean"
|
|
5776
|
-
},
|
|
5777
5879
|
"preemptive_compaction": {
|
|
5778
5880
|
"type": "boolean"
|
|
5779
5881
|
},
|
|
@@ -2,10 +2,12 @@ import type { PluginInput } from "@opencode-ai/plugin";
|
|
|
2
2
|
type SdkSession = PluginInput["client"]["session"];
|
|
3
3
|
type SdkPromptAsync = SdkSession["promptAsync"];
|
|
4
4
|
type SdkStatus = SdkSession["status"];
|
|
5
|
+
type SdkMessages = SdkSession["messages"];
|
|
5
6
|
export type TeamIdleWakeHintNarrowClient = {
|
|
6
7
|
session: {
|
|
7
8
|
promptAsync?: SdkPromptAsync;
|
|
8
9
|
status?: SdkStatus;
|
|
10
|
+
messages?: SdkMessages;
|
|
9
11
|
};
|
|
10
12
|
};
|
|
11
13
|
export declare function buildTeamIdleWakeHintClient(client: PluginInput["client"]): TeamIdleWakeHintNarrowClient;
|
|
@@ -30,7 +30,6 @@ export declare function handleSessionDeletedEvent(args: {
|
|
|
30
30
|
managers: Managers;
|
|
31
31
|
firstMessageVariantGate: FirstMessageVariantGate;
|
|
32
32
|
clearModelFallbackSession: (sessionID: string) => void;
|
|
33
|
-
clearUserAbortRecovery: (sessionID: string) => void;
|
|
34
33
|
}): Promise<void>;
|
|
35
34
|
export declare function handleMessageRemovedEvent(props?: Record<string, unknown>): void;
|
|
36
35
|
export declare function handleMessageUpdatedSessionState(args: {
|
|
@@ -39,8 +38,6 @@ export declare function handleMessageUpdatedSessionState(args: {
|
|
|
39
38
|
providerID: string;
|
|
40
39
|
modelID: string;
|
|
41
40
|
}) => void;
|
|
42
|
-
clearUserAbortRecovery: (sessionID: string) => void;
|
|
43
|
-
noteAssistantError: (sessionID: string, error: unknown) => void;
|
|
44
41
|
}): {
|
|
45
42
|
info: Record<string, unknown> | undefined;
|
|
46
43
|
sessionID: string | undefined;
|
|
@@ -12,16 +12,10 @@ export type ContinuationHooks = {
|
|
|
12
12
|
backgroundNotificationHook: ReturnType<typeof createBackgroundNotificationHook> | null;
|
|
13
13
|
atlasHook: ReturnType<typeof createAtlasHook> | null;
|
|
14
14
|
};
|
|
15
|
-
type SessionRecovery = {
|
|
16
|
-
setOnAbortCallback: (callback: (sessionID: string) => void) => void;
|
|
17
|
-
setOnRecoveryCompleteCallback: (callback: (sessionID: string) => void) => void;
|
|
18
|
-
} | null;
|
|
19
15
|
export declare function createContinuationHooks(args: {
|
|
20
16
|
ctx: PluginContext;
|
|
21
17
|
pluginConfig: OhMyOpenCodeConfig;
|
|
22
18
|
isHookEnabled: (hookName: HookName) => boolean;
|
|
23
19
|
safeHookEnabled: boolean;
|
|
24
20
|
backgroundManager: BackgroundManager;
|
|
25
|
-
sessionRecovery: SessionRecovery;
|
|
26
21
|
}): ContinuationHooks;
|
|
27
|
-
export {};
|
|
@@ -37,7 +37,6 @@ export declare function createCoreHooks(args: {
|
|
|
37
37
|
notepadWriteGuard: ReturnType<typeof import("../../hooks").createNotepadWriteGuardHook> | null;
|
|
38
38
|
planFormatValidator: ReturnType<typeof import("../../hooks").createPlanFormatValidatorHook> | null;
|
|
39
39
|
preemptiveCompaction: ReturnType<typeof import("../../hooks").createPreemptiveCompactionHook> | null;
|
|
40
|
-
sessionRecovery: ReturnType<typeof import("../../hooks").createSessionRecoveryHook> | null;
|
|
41
40
|
sessionNotification: ReturnType<typeof import("../../hooks").createSessionNotification> | null;
|
|
42
41
|
thinkMode: ReturnType<typeof import("../../hooks").createThinkModeHook> | null;
|
|
43
42
|
modelFallback: ReturnType<typeof import("../../hooks").createModelFallbackHook> | null;
|
|
@@ -3,10 +3,9 @@ import type { BackgroundManager } from "../../features/background-agent";
|
|
|
3
3
|
import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
|
|
4
4
|
import type { ModelCacheState } from "../../plugin-state";
|
|
5
5
|
import type { PluginContext } from "../types";
|
|
6
|
-
import {
|
|
6
|
+
import { createSessionNotification, createThinkModeHook, createModelFallbackHook, createAnthropicContextWindowLimitRecoveryHook, createAutoUpdateCheckerHook, createAgentUsageReminderHook, createNonInteractiveEnvHook, createInteractiveBashSessionHook, createRalphLoopHook, createEditErrorRecoveryHook, createDelegateTaskRetryHook, createTaskResumeInfoHook, createStartWorkHook, createPrometheusMdOnlyHook, createSisyphusJuniorNotepadHook, createNoSisyphusGptHook, createNoHephaestusNonGptHook, createHephaestusAgentsMdInjectorHook, createQuestionLabelTruncatorHook, createPreemptiveCompactionHook, createRuntimeFallbackHook, createLegacyPluginToastHook } from "../../hooks";
|
|
7
7
|
export type SessionHooks = {
|
|
8
8
|
preemptiveCompaction: ReturnType<typeof createPreemptiveCompactionHook> | null;
|
|
9
|
-
sessionRecovery: ReturnType<typeof createSessionRecoveryHook> | null;
|
|
10
9
|
sessionNotification: ReturnType<typeof createSessionNotification> | null;
|
|
11
10
|
thinkMode: ReturnType<typeof createThinkModeHook> | null;
|
|
12
11
|
modelFallback: ReturnType<typeof createModelFallbackHook> | null;
|
|
@@ -12,5 +12,12 @@ export interface ExecuteHookOptions {
|
|
|
12
12
|
killGraceMs?: number;
|
|
13
13
|
/** When provided, scrub process.env to only include these vars plus HOME/PATH/etc. Used for plugin-sourced hooks. */
|
|
14
14
|
allowedEnvVars?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Plugin install path. When set, CLAUDE_PLUGIN_ROOT is exported into the
|
|
17
|
+
* spawn env and substituted in the command string so plugin-sourced hooks
|
|
18
|
+
* can reference $CLAUDE_PLUGIN_ROOT / ${CLAUDE_PLUGIN_ROOT} the same way
|
|
19
|
+
* Claude Code's CLI does (#4458).
|
|
20
|
+
*/
|
|
21
|
+
pluginRoot?: string;
|
|
15
22
|
}
|
|
16
23
|
export declare function executeHookCommand(command: string, stdin: string, cwd: string, options?: ExecuteHookOptions): Promise<CommandResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const PLUGIN_NAME = "oh-my-openagent";
|
|
2
2
|
export declare const LEGACY_PLUGIN_NAME = "oh-my-opencode";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const ACCEPTED_PACKAGE_NAMES: readonly ["oh-my-openagent", "oh-my-opencode"];
|
|
4
|
+
export declare const PUBLISHED_PACKAGE_NAME = "oh-my-openagent";
|
|
5
5
|
export declare const CONFIG_BASENAME = "oh-my-openagent";
|
|
6
6
|
export declare const LEGACY_CONFIG_BASENAME = "oh-my-opencode";
|
|
7
7
|
export declare const LOG_FILENAME = "oh-my-opencode.log";
|
|
@@ -8,7 +8,8 @@ type IsServerRunningOptions = {
|
|
|
8
8
|
state?: ServerHealthState;
|
|
9
9
|
};
|
|
10
10
|
export declare function markServerRunningInProcess(): void;
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function createServerHealthState(): ServerHealthState;
|
|
12
|
+
export declare const createServerHealthStateForTesting: typeof createServerHealthState;
|
|
12
13
|
export declare function isServerRunning(serverUrl: string, options?: IsServerRunningOptions): Promise<boolean>;
|
|
13
14
|
export declare function resetServerCheck(): void;
|
|
14
15
|
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TmuxAttachPane = {
|
|
2
|
+
readonly paneId: string;
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly attachServerUrl: string;
|
|
5
|
+
readonly commandLine: string;
|
|
6
|
+
};
|
|
7
|
+
export type SweepAttachPaneDeps = {
|
|
8
|
+
readonly isInsideTmux: () => boolean;
|
|
9
|
+
readonly getTmuxPath: () => Promise<string | null | undefined>;
|
|
10
|
+
readonly listCandidatePanes: (tmux: string) => Promise<readonly TmuxAttachPane[]>;
|
|
11
|
+
readonly isServerRunning: (serverUrl: string) => Promise<boolean>;
|
|
12
|
+
readonly closePane: (paneId: string) => Promise<boolean>;
|
|
13
|
+
readonly log: (message: string, payload?: unknown) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare function sweepStaleOmoAttachPanesWith(deps: SweepAttachPaneDeps): Promise<number>;
|
|
16
|
+
export declare function sweepStaleOmoAttachPanes(): Promise<number>;
|
|
@@ -11,5 +11,6 @@ export { spawnTmuxWindow } from "./tmux-utils/window-spawn";
|
|
|
11
11
|
export { spawnTmuxSession, getIsolatedSessionName } from "./tmux-utils/session-spawn";
|
|
12
12
|
export { killTmuxSessionIfExists } from "./tmux-utils/session-kill";
|
|
13
13
|
export { sweepStaleOmoAgentSessions, sweepTmuxSessionsWith } from "./tmux-utils/stale-session-sweep";
|
|
14
|
+
export { sweepStaleOmoAttachPanes } from "./tmux-utils/stale-attach-pane-sweep";
|
|
14
15
|
export { buildTmuxAttachCommand, buildTmuxPlaceholderCommand } from "./tmux-utils/pane-command";
|
|
15
16
|
export { applyLayout, enforceMainPaneWidth } from "./tmux-utils/layout";
|
|
@@ -4,7 +4,7 @@ import type { DelegatedModelConfig, DelegateTaskArgs, OpencodeClient } from "./t
|
|
|
4
4
|
type SendSyncPromptDeps = {
|
|
5
5
|
promptWithModelSuggestionRetry: typeof promptWithModelSuggestionRetry;
|
|
6
6
|
};
|
|
7
|
-
export declare function buildSyncPromptTools(agentToUse: string): Record<string, boolean>;
|
|
7
|
+
export declare function buildSyncPromptTools(agentToUse: string, permission?: Record<string, "ask" | "allow" | "deny">): Record<string, boolean>;
|
|
8
8
|
export declare function sendSyncPrompt(client: OpencodeClient, input: {
|
|
9
9
|
sessionID: string;
|
|
10
10
|
agentToUse: string;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ExecutorContext, ParentContext } from "./executor-types";
|
|
2
|
-
import type { DelegateTaskArgs } from "./types";
|
|
2
|
+
import type { DelegatedModelConfig, DelegateTaskArgs } from "./types";
|
|
3
3
|
export declare function registerSyncSessionSideEffects(input: {
|
|
4
4
|
readonly args: DelegateTaskArgs;
|
|
5
5
|
readonly executorCtx: ExecutorContext;
|
|
6
6
|
readonly sessionID: string;
|
|
7
7
|
readonly parentContext: ParentContext;
|
|
8
8
|
readonly agentToUse: string;
|
|
9
|
+
readonly categoryModel: DelegatedModelConfig | undefined;
|
|
9
10
|
readonly fallbackChain: import("../../shared/model-requirements").FallbackEntry[] | undefined;
|
|
10
11
|
readonly systemContent: string | undefined;
|
|
11
12
|
}): Promise<void>;
|
|
@@ -5,9 +5,13 @@ export interface LookAtFilePart {
|
|
|
5
5
|
url: string;
|
|
6
6
|
filename: string;
|
|
7
7
|
}
|
|
8
|
+
export interface LookAtTextPart {
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}
|
|
12
|
+
export type LookAtInputPart = LookAtFilePart | LookAtTextPart;
|
|
8
13
|
export interface PreparedLookAtInput {
|
|
9
|
-
readonly
|
|
10
|
-
readonly isBase64Input: boolean;
|
|
14
|
+
readonly inputParts: LookAtInputPart[];
|
|
11
15
|
readonly sourceDescription: string;
|
|
12
16
|
cleanup(): void;
|
|
13
17
|
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { LookAtFilePart } from "./look-at-input-preparer";
|
|
1
2
|
export declare const READ_ENABLED = false;
|
|
2
|
-
export declare function buildLookAtPrompt(goal: string,
|
|
3
|
+
export declare function buildLookAtPrompt(goal: string, fileParts: LookAtFilePart[]): string;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
2
|
import type { ToolContext } from "@opencode-ai/plugin/tool";
|
|
3
|
-
import type {
|
|
3
|
+
import type { LookAtInputPart } from "./look-at-input-preparer";
|
|
4
4
|
interface RunLookAtSessionInput {
|
|
5
5
|
ctx: PluginInput;
|
|
6
6
|
toolContext: ToolContext;
|
|
7
7
|
goal: string;
|
|
8
|
-
|
|
9
|
-
isBase64Input: boolean;
|
|
8
|
+
inputParts: LookAtInputPart[];
|
|
10
9
|
}
|
|
11
|
-
export declare function runLookAtSession({ ctx, toolContext, goal,
|
|
10
|
+
export declare function runLookAtSession({ ctx, toolContext, goal, inputParts, }: RunLookAtSessionInput): Promise<string>;
|
|
12
11
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.10.0",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"prepare": "bun run build",
|
|
76
76
|
"postinstall": "node postinstall.mjs",
|
|
77
77
|
"prepublishOnly": "bun run clean && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && bun run build",
|
|
78
|
-
"test:model-capabilities": "bun test packages/
|
|
78
|
+
"test:model-capabilities": "bun test packages/model-core/src/model-capability-aliases.test.ts packages/model-core/src/model-capability-guardrails.test.ts packages/model-core/src/model-capabilities.test.ts packages/omo-opencode/src/cli/doctor/checks/model-resolution.test.ts --bail",
|
|
79
79
|
"typecheck": "tsgo --noEmit && bun run typecheck:script && bun run typecheck:packages",
|
|
80
80
|
"typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/ast-grep-core/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/git-bash-mcp/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/prompts-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json && tsgo --noEmit -p packages/omo-codex/tsconfig.json && tsgo --noEmit -p packages/omo-opencode/tsconfig.json",
|
|
81
81
|
"typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
|
|
@@ -144,17 +144,18 @@
|
|
|
144
144
|
"zod": "^4.4.3"
|
|
145
145
|
},
|
|
146
146
|
"optionalDependencies": {
|
|
147
|
-
"oh-my-opencode-darwin-arm64": "4.
|
|
148
|
-
"oh-my-opencode-darwin-x64": "4.
|
|
149
|
-
"oh-my-opencode-darwin-x64-baseline": "4.
|
|
150
|
-
"oh-my-opencode-linux-arm64": "4.
|
|
151
|
-
"oh-my-opencode-linux-arm64-musl": "4.
|
|
152
|
-
"oh-my-opencode-linux-x64": "4.
|
|
153
|
-
"oh-my-opencode-linux-x64-baseline": "4.
|
|
154
|
-
"oh-my-opencode-linux-x64-musl": "4.
|
|
155
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.
|
|
156
|
-
"oh-my-opencode-windows-
|
|
157
|
-
"oh-my-opencode-windows-x64
|
|
147
|
+
"oh-my-opencode-darwin-arm64": "4.10.0",
|
|
148
|
+
"oh-my-opencode-darwin-x64": "4.10.0",
|
|
149
|
+
"oh-my-opencode-darwin-x64-baseline": "4.10.0",
|
|
150
|
+
"oh-my-opencode-linux-arm64": "4.10.0",
|
|
151
|
+
"oh-my-opencode-linux-arm64-musl": "4.10.0",
|
|
152
|
+
"oh-my-opencode-linux-x64": "4.10.0",
|
|
153
|
+
"oh-my-opencode-linux-x64-baseline": "4.10.0",
|
|
154
|
+
"oh-my-opencode-linux-x64-musl": "4.10.0",
|
|
155
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.10.0",
|
|
156
|
+
"oh-my-opencode-windows-arm64": "4.10.0",
|
|
157
|
+
"oh-my-opencode-windows-x64": "4.10.0",
|
|
158
|
+
"oh-my-opencode-windows-x64-baseline": "4.10.0"
|
|
158
159
|
},
|
|
159
160
|
"overrides": {
|
|
160
161
|
"hono": "^4.12.18",
|