oh-my-opencode 5.0.0-beta.40 → 5.0.0-beta.43
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/pre-publish-review/SKILL.md +9 -12
- package/.opencode/skills/pre-publish-review/SKILL.md +9 -12
- package/README.ja.md +2 -2
- package/README.ko.md +4 -4
- package/README.md +4 -4
- package/README.ru.md +2 -2
- package/README.zh-cn.md +2 -2
- package/dist/agents/gpt-prompt-identity.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -0
- package/dist/cli/index.js +174 -78
- package/dist/cli-node/index.js +174 -78
- package/dist/index.js +243 -131
- package/dist/skills/ast-grep/SKILL.md +1 -1
- package/dist/skills/coding-agent-sessions/SKILL.md +1 -1
- package/dist/skills/data-scientist/SKILL.md +1 -1
- package/dist/skills/debugging/SKILL.md +1 -1
- package/dist/skills/frontend/SKILL.md +1 -1
- package/dist/skills/git-master/SKILL.md +1 -1
- package/dist/skills/init-deep/SKILL.md +1 -1
- package/dist/skills/lsp-setup/SKILL.md +1 -1
- package/dist/skills/programming/SKILL.md +1 -1
- package/dist/skills/refactor/SKILL.md +1 -1
- package/dist/skills/remove-ai-slops/SKILL.md +1 -1
- package/dist/skills/review-work/SKILL.md +99 -417
- package/dist/skills/ultimate-browsing/ATTRIBUTION.md +1 -1
- package/dist/skills/ultimate-browsing/SKILL.md +24 -9
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +13 -10
- package/dist/skills/ulw-execute/SKILL.md +1 -1
- package/dist/skills/ulw-plan/SKILL.md +1 -1
- package/dist/skills/ulw-research/SKILL.md +5 -2
- package/dist/skills/visual-qa/SKILL.md +2 -2
- package/dist/tools/delegate-task/builtin-categories.d.ts +2 -1
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -1
- package/dist/tools/delegate-task/constants.d.ts +2 -2
- package/dist/tools/delegate-task/openai-categories.d.ts +7 -2
- package/dist/tui.js +149 -59
- package/package.json +21 -18
- package/packages/lsp-core/src/lsp/json-rpc-connection.ts +11 -6
- package/packages/lsp-daemon/dist/cli.js +11 -6
- package/packages/lsp-daemon/dist/client.js +11 -6
- package/packages/lsp-daemon/dist/index.js +11 -6
- package/packages/lsp-tools-mcp/dist/cli.js +11 -6
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +11 -6
- package/packages/lsp-tools-mcp/dist/mcp.js +11 -6
- package/packages/lsp-tools-mcp/dist/tools.js +11 -6
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +11 -6
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -18
- package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +99 -417
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +24 -9
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -10
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +5 -2
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +2 -2
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +3 -2
- package/packages/shared-skills/package.json +7 -1
- package/packages/shared-skills/skill-source-filter.d.ts +16 -0
- package/packages/shared-skills/skill-source-filter.mjs +44 -0
- package/packages/shared-skills/skills/ast-grep/SKILL.md +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +1 -1
- package/packages/shared-skills/skills/data-scientist/SKILL.md +1 -1
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- package/packages/shared-skills/skills/frontend/SKILL.md +1 -1
- package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
- package/packages/shared-skills/skills/init-deep/SKILL.md +1 -1
- package/packages/shared-skills/skills/lsp-setup/SKILL.md +1 -1
- package/packages/shared-skills/skills/programming/SKILL.md +1 -1
- package/packages/shared-skills/skills/refactor/SKILL.md +1 -1
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/shared-skills/skills/review-work/SKILL.md +99 -417
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +24 -9
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -10
- package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +5 -2
- package/packages/shared-skills/skills/visual-qa/SKILL.md +2 -2
- package/dist/tools/delegate-task/anthropic-categories.d.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -19951,7 +19951,7 @@ var AGENT_MODEL_REQUIREMENTS = {
|
|
|
19951
19951
|
fallbackChain: [
|
|
19952
19952
|
{
|
|
19953
19953
|
providers: ["anthropic", "github-copilot", "opencode"],
|
|
19954
|
-
model: "claude-fable-5",
|
|
19954
|
+
model: "claude-fable-5-1",
|
|
19955
19955
|
variant: "xhigh"
|
|
19956
19956
|
},
|
|
19957
19957
|
{
|
|
@@ -19977,10 +19977,9 @@ var AGENT_MODEL_REQUIREMENTS = {
|
|
|
19977
19977
|
},
|
|
19978
19978
|
momus: {
|
|
19979
19979
|
fallbackChain: [
|
|
19980
|
-
{ providers: ["openai", "openai-codex"], model: "gpt-
|
|
19981
|
-
{ providers: ["github-copilot"], model: "gpt-
|
|
19982
|
-
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-
|
|
19983
|
-
{ providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
|
|
19980
|
+
{ providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "xhigh" },
|
|
19981
|
+
{ providers: ["github-copilot"], model: "gpt-6-astra", variant: "high" },
|
|
19982
|
+
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "high" },
|
|
19984
19983
|
{
|
|
19985
19984
|
providers: ["anthropic", "github-copilot", "opencode"],
|
|
19986
19985
|
model: "claude-opus-5",
|
|
@@ -20028,6 +20027,11 @@ var AGENT_MODEL_REQUIREMENTS = {
|
|
|
20028
20027
|
var CATEGORY_MODEL_REQUIREMENTS = {
|
|
20029
20028
|
"visual-engineering": {
|
|
20030
20029
|
fallbackChain: [
|
|
20030
|
+
{
|
|
20031
|
+
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
20032
|
+
model: "claude-fable-5-1",
|
|
20033
|
+
variant: "max"
|
|
20034
|
+
},
|
|
20031
20035
|
{
|
|
20032
20036
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
20033
20037
|
model: "claude-opus-5",
|
|
@@ -20037,17 +20041,14 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
20037
20041
|
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
20038
20042
|
model: "kimi-k3",
|
|
20039
20043
|
variant: "max"
|
|
20040
|
-
},
|
|
20041
|
-
{ providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.2", variant: "max" },
|
|
20042
|
-
{
|
|
20043
|
-
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
20044
|
-
model: "gpt-5.6-sol",
|
|
20045
|
-
variant: "medium"
|
|
20046
20044
|
}
|
|
20047
20045
|
]
|
|
20048
20046
|
},
|
|
20049
20047
|
ultrabrain: {
|
|
20050
20048
|
fallbackChain: [
|
|
20049
|
+
{ providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "max" },
|
|
20050
|
+
{ providers: ["github-copilot"], model: "gpt-6-astra", variant: "max" },
|
|
20051
|
+
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "max" },
|
|
20051
20052
|
{ providers: ["openai", "openai-codex"], model: "gpt-5.6-sol", variant: "max" },
|
|
20052
20053
|
{ providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "max" },
|
|
20053
20054
|
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "max" }
|
|
@@ -20055,6 +20056,11 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
20055
20056
|
},
|
|
20056
20057
|
deep: {
|
|
20057
20058
|
fallbackChain: [
|
|
20059
|
+
{
|
|
20060
|
+
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
20061
|
+
model: "gpt-6-astra",
|
|
20062
|
+
variant: "high"
|
|
20063
|
+
},
|
|
20058
20064
|
{
|
|
20059
20065
|
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
20060
20066
|
model: "gpt-5.6-sol",
|
|
@@ -20066,7 +20072,7 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
20066
20072
|
fallbackChain: [
|
|
20067
20073
|
{
|
|
20068
20074
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
20069
|
-
model: "claude-fable-5",
|
|
20075
|
+
model: "claude-fable-5-1",
|
|
20070
20076
|
variant: "xhigh"
|
|
20071
20077
|
},
|
|
20072
20078
|
{
|
|
@@ -20125,6 +20131,11 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
20125
20131
|
},
|
|
20126
20132
|
"unspecified-high": {
|
|
20127
20133
|
fallbackChain: [
|
|
20134
|
+
{
|
|
20135
|
+
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
20136
|
+
model: "gpt-6-astra",
|
|
20137
|
+
variant: "high"
|
|
20138
|
+
},
|
|
20128
20139
|
{
|
|
20129
20140
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
20130
20141
|
model: "claude-opus-5",
|
|
@@ -20140,17 +20151,16 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
20140
20151
|
},
|
|
20141
20152
|
writing: {
|
|
20142
20153
|
fallbackChain: [
|
|
20143
|
-
{
|
|
20144
|
-
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
20145
|
-
model: "kimi-k3",
|
|
20146
|
-
variant: "low"
|
|
20147
|
-
},
|
|
20148
20154
|
{
|
|
20149
20155
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
20150
|
-
model: "claude-
|
|
20151
|
-
variant: "
|
|
20156
|
+
model: "claude-fable-5-1",
|
|
20157
|
+
variant: "medium"
|
|
20152
20158
|
},
|
|
20153
|
-
{
|
|
20159
|
+
{
|
|
20160
|
+
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
20161
|
+
model: "kimi-k3",
|
|
20162
|
+
variant: "max"
|
|
20163
|
+
}
|
|
20154
20164
|
]
|
|
20155
20165
|
}
|
|
20156
20166
|
};
|
|
@@ -20266,11 +20276,11 @@ var EXACT_ALIAS_RULES = [
|
|
|
20266
20276
|
var EXACT_ALIAS_RULES_BY_MODEL = new Map(EXACT_ALIAS_RULES.map((rule) => [rule.aliasModelID, rule]));
|
|
20267
20277
|
var PATTERN_ALIAS_RULES = [
|
|
20268
20278
|
{
|
|
20269
|
-
ruleID: "openai-gpt-
|
|
20270
|
-
description: "Normalizes OpenCode's OpenAI GPT
|
|
20279
|
+
ruleID: "openai-gpt-fast-service-tier-alias",
|
|
20280
|
+
description: "Normalizes OpenCode's OpenAI GPT fast service-tier IDs to canonical snapshot IDs.",
|
|
20271
20281
|
providerIDs: ["openai"],
|
|
20272
20282
|
allowedSubproviderHosts: ["vercel"],
|
|
20273
|
-
match: (normalizedModelID) => /^gpt-5\.6-(?:sol|terra|luna)-fast$/.test(normalizedModelID),
|
|
20283
|
+
match: (normalizedModelID) => /^(?:gpt-5\.6-(?:sol|terra|luna)|gpt-6-astra)-fast$/.test(normalizedModelID),
|
|
20274
20284
|
canonicalize: (normalizedModelID) => normalizedModelID.slice(0, -"-fast".length)
|
|
20275
20285
|
},
|
|
20276
20286
|
{
|
|
@@ -20476,6 +20486,14 @@ var HEURISTIC_MODEL_FAMILY_REGISTRY = [
|
|
|
20476
20486
|
reasoningEfforts: ["none", "minimal", "low", "medium", "high"],
|
|
20477
20487
|
supportsTemperature: false
|
|
20478
20488
|
},
|
|
20489
|
+
{
|
|
20490
|
+
family: "gpt-6",
|
|
20491
|
+
includes: ["gpt-6"],
|
|
20492
|
+
variants: ["low", "medium", "high", "xhigh", "max"],
|
|
20493
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
20494
|
+
reasoningEffortAliases: { none: "low", minimal: "low" },
|
|
20495
|
+
supportsTemperature: false
|
|
20496
|
+
},
|
|
20479
20497
|
{
|
|
20480
20498
|
family: "gpt-5",
|
|
20481
20499
|
includes: ["gpt-5"],
|
|
@@ -21653,6 +21671,37 @@ var SUPPLEMENTAL_MODEL_CAPABILITIES = {
|
|
|
21653
21671
|
output: 262144
|
|
21654
21672
|
}
|
|
21655
21673
|
},
|
|
21674
|
+
"claude-fable-5-1": {
|
|
21675
|
+
id: "claude-fable-5-1",
|
|
21676
|
+
family: "claude-fable",
|
|
21677
|
+
reasoning: true,
|
|
21678
|
+
temperature: false,
|
|
21679
|
+
toolCall: true,
|
|
21680
|
+
modalities: {
|
|
21681
|
+
input: ["text", "image", "pdf"],
|
|
21682
|
+
output: ["text"]
|
|
21683
|
+
},
|
|
21684
|
+
limit: {
|
|
21685
|
+
context: 1e6,
|
|
21686
|
+
output: 128000
|
|
21687
|
+
}
|
|
21688
|
+
},
|
|
21689
|
+
"gpt-6-astra": {
|
|
21690
|
+
id: "gpt-6-astra",
|
|
21691
|
+
family: "gpt",
|
|
21692
|
+
reasoning: true,
|
|
21693
|
+
temperature: false,
|
|
21694
|
+
toolCall: true,
|
|
21695
|
+
modalities: {
|
|
21696
|
+
input: ["text", "image"],
|
|
21697
|
+
output: ["text"]
|
|
21698
|
+
},
|
|
21699
|
+
limit: {
|
|
21700
|
+
context: 1050000,
|
|
21701
|
+
input: 922000,
|
|
21702
|
+
output: 128000
|
|
21703
|
+
}
|
|
21704
|
+
},
|
|
21656
21705
|
"gpt-5.6-sol": {
|
|
21657
21706
|
id: "gpt-5.6-sol",
|
|
21658
21707
|
family: "gpt",
|
|
@@ -21980,8 +22029,8 @@ function readRuntimeModelLimitOutput(runtimeModel) {
|
|
|
21980
22029
|
|
|
21981
22030
|
// packages/model-core/src/model-capabilities/get-model-capabilities.ts
|
|
21982
22031
|
var MODEL_ID_OVERRIDES = {};
|
|
21983
|
-
var
|
|
21984
|
-
var
|
|
22032
|
+
var GITHUB_COPILOT_GPT_MODEL = /(?:^|\/)gpt-[56](?:[.-]|$)/;
|
|
22033
|
+
var GITHUB_COPILOT_GPT_OVERRIDE = {
|
|
21985
22034
|
variants: ["low", "medium", "high"],
|
|
21986
22035
|
reasoningEfforts: ["none", "minimal", "low", "medium", "high"]
|
|
21987
22036
|
};
|
|
@@ -21994,7 +22043,7 @@ function getOverride(modelID) {
|
|
|
21994
22043
|
function getProviderOverride(providerID, modelID) {
|
|
21995
22044
|
if (providerID.trim().toLowerCase() !== "github-copilot")
|
|
21996
22045
|
return;
|
|
21997
|
-
return
|
|
22046
|
+
return GITHUB_COPILOT_GPT_MODEL.test(normalizeLookupModelID2(modelID)) ? GITHUB_COPILOT_GPT_OVERRIDE : undefined;
|
|
21998
22047
|
}
|
|
21999
22048
|
function stripSameProviderPrefix(providerID, modelID) {
|
|
22000
22049
|
const prefix = `${providerID.trim()}/`;
|
|
@@ -23086,7 +23135,6 @@ var OmoMemoryAgentOverridesSchema = z7.object({
|
|
|
23086
23135
|
var OmoMemorySettingsSchema = z7.object({
|
|
23087
23136
|
enabled: z7.boolean().default(true),
|
|
23088
23137
|
agent: z7.string().min(1).default("auto"),
|
|
23089
|
-
tool_exposure: z7.enum(["direct", "search"]).default("direct"),
|
|
23090
23138
|
reflection: OmoMemoryReflectionSchema.default({
|
|
23091
23139
|
enabled: true,
|
|
23092
23140
|
trigger: { step_count: 25, on_compaction: true },
|
|
@@ -23117,7 +23165,6 @@ var OmoMemorySettingsSchema = z7.object({
|
|
|
23117
23165
|
var OmoMemorySettingsLayerSchema = z7.object({
|
|
23118
23166
|
enabled: z7.boolean().optional(),
|
|
23119
23167
|
agent: z7.string().min(1).optional(),
|
|
23120
|
-
tool_exposure: z7.enum(["direct", "search"]).optional(),
|
|
23121
23168
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
23122
23169
|
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
23123
23170
|
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
@@ -26340,21 +26387,6 @@ function truncateDescription(description, maxLength = 120) {
|
|
|
26340
26387
|
return description.slice(0, maxLength - 3) + "...";
|
|
26341
26388
|
}
|
|
26342
26389
|
|
|
26343
|
-
// packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
|
|
26344
|
-
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26345
|
-
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
26346
|
-
</Category_Context>`;
|
|
26347
|
-
var UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`;
|
|
26348
|
-
var ANTHROPIC_CATEGORIES = [
|
|
26349
|
-
{
|
|
26350
|
-
name: "unspecified-high",
|
|
26351
|
-
config: { model: "anthropic/claude-opus-5", variant: "xhigh" },
|
|
26352
|
-
description: "Tasks that don't fit other categories, high effort required",
|
|
26353
|
-
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
26354
|
-
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
|
|
26355
|
-
}
|
|
26356
|
-
];
|
|
26357
|
-
|
|
26358
26390
|
// packages/omo-opencode/src/tools/delegate-task/google-categories.ts
|
|
26359
26391
|
var VISUAL_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26360
26392
|
You are working on VISUAL/UI tasks.
|
|
@@ -26463,13 +26495,13 @@ Approach:
|
|
|
26463
26495
|
var GOOGLE_CATEGORIES = [
|
|
26464
26496
|
{
|
|
26465
26497
|
name: "visual-engineering",
|
|
26466
|
-
config: { model: "anthropic/claude-
|
|
26467
|
-
description: "
|
|
26498
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "max" },
|
|
26499
|
+
description: "Visual design, UI/UX, frontend, styling, animation, and design systems",
|
|
26468
26500
|
promptAppend: VISUAL_CATEGORY_PROMPT_APPEND
|
|
26469
26501
|
},
|
|
26470
26502
|
{
|
|
26471
26503
|
name: "artistry",
|
|
26472
|
-
config: { model: "anthropic/claude-fable-5", variant: "
|
|
26504
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "max" },
|
|
26473
26505
|
description: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
|
|
26474
26506
|
promptAppend: ARTISTRY_CATEGORY_PROMPT_APPEND
|
|
26475
26507
|
}
|
|
@@ -26504,7 +26536,7 @@ ANTI-AI-SLOP RULES (NON-NEGOTIABLE):
|
|
|
26504
26536
|
var KIMI_CATEGORIES = [
|
|
26505
26537
|
{
|
|
26506
26538
|
name: "writing",
|
|
26507
|
-
config: { model: "
|
|
26539
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "medium" },
|
|
26508
26540
|
description: "Documentation, prose, technical writing",
|
|
26509
26541
|
promptAppend: WRITING_CATEGORY_PROMPT_APPEND
|
|
26510
26542
|
}
|
|
@@ -26534,8 +26566,38 @@ function isGpt5_6Model(model) {
|
|
|
26534
26566
|
const modelName = extractModelName2(model).toLowerCase();
|
|
26535
26567
|
return modelName.includes("gpt-5.6") || modelName.includes("gpt-5-6");
|
|
26536
26568
|
}
|
|
26569
|
+
function isGpt6Model(model) {
|
|
26570
|
+
const modelName = extractModelName2(model).toLowerCase();
|
|
26571
|
+
return modelName.includes("gpt-6");
|
|
26572
|
+
}
|
|
26537
26573
|
|
|
26538
26574
|
// packages/omo-opencode/src/tools/delegate-task/openai-categories.ts
|
|
26575
|
+
var ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="ultrabrain">
|
|
26576
|
+
The orchestrator routed this task here because it is the one genuinely hard, logic-heavy problem in its plan, and it sent a goal rather than steps: choose the approach yourself, and let correctness outrank speed, brevity, and token cost.
|
|
26577
|
+
|
|
26578
|
+
Success means:
|
|
26579
|
+
- every load-bearing claim cites evidence from this turn: a file and line read, a command run, a test executed;
|
|
26580
|
+
- every executable claim was executed: a proposed fix runs, an algorithm passes the boundary cases you enumerated, a verdict on a diff names the failing line;
|
|
26581
|
+
- the conclusion survived your own attempt to break it, and the answer names the strongest counter-case you looked for;
|
|
26582
|
+
- rejected alternatives carry the reason that decided against them, and open assumptions are stated so the orchestrator can overturn them;
|
|
26583
|
+
- one decision-complete recommendation, actionable without a follow-up question.
|
|
26584
|
+
|
|
26585
|
+
Whatever that check leaves unsettled goes in the answer as an open question with what would settle it. When the goal bundles independent problems, solve the one the others depend on and return the rest as separately delegable items.
|
|
26586
|
+
</Category_Context>`;
|
|
26587
|
+
var DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="deep">
|
|
26588
|
+
The orchestrator routed this task here for depth: one goal, one deliverable, and the time to earn it. The exploration budget is generous: read every file involved, trace callers and dependencies in both directions, and fan out explore and librarian subagents in parallel for the questions a single read wave cannot answer, until you can explain the full mechanism you are about to change; an edit made before that point is the failure this category exists to prevent.
|
|
26589
|
+
|
|
26590
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
26591
|
+
|
|
26592
|
+
The goal is the authorization. Choose how to reach it yourself, and when it lists numbered steps or phases, deliver all of them in this turn as one task; a proposal, a plan awaiting approval, a simplified version, or a proof of concept is unfinished work. When the steps turn out to be independent problems sharing no reasoning, do the one the goal centers on and return the others as separately delegable items with what you learned. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and stop early only for a blocker you cannot route around: a missing secret, a decision only the user can make, or three materially different attempts that all failed.
|
|
26593
|
+
|
|
26594
|
+
Fix the cause: trace at least two levels above the symptom before settling, and prefer the change that makes the failure impossible over the guard that hides it. Depth means understanding the mechanism, so the diff stays as small as the fix allows; on greenfield work choose strong defaults and finish something you would hand to a senior engineer. Close with the delivered change, the evidence that it works, and the assumptions you made.
|
|
26595
|
+
</Category_Context>`;
|
|
26596
|
+
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="unspecified-high">
|
|
26597
|
+
The orchestrator routed this task here because it spans systems or modules and fits no specialist category, so breadth of consideration is what this category buys. Before committing to an approach, survey the whole surface the change touches: every caller and consumer of what you will modify, sibling modules that implement the same pattern, the tests, docs, schemas, config, scripts, and CI that encode the current behavior, and the history of the area (git log and blame) for the reasons it is shaped this way. Fan out explore and librarian subagents in parallel when that surface is wider than one read wave covers.
|
|
26598
|
+
|
|
26599
|
+
Weigh at least two ways to do it against what you found, choose one, and say in the final message why it won. Then deliver it across every surface you identified, so behavior stays consistent everywhere the change is observable and no caller, test, doc, schema, or config still describes the old state. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and finish.
|
|
26600
|
+
</Category_Context>`;
|
|
26539
26601
|
var ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26540
26602
|
You are working on DEEP LOGICAL REASONING / COMPLEX ARCHITECTURE tasks.
|
|
26541
26603
|
|
|
@@ -26562,6 +26624,8 @@ You are working on GOAL-ORIENTED AUTONOMOUS tasks.
|
|
|
26562
26624
|
|
|
26563
26625
|
You are NOT an interactive assistant. You are an autonomous problem-solver.
|
|
26564
26626
|
|
|
26627
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
26628
|
+
|
|
26565
26629
|
BEFORE making ANY changes:
|
|
26566
26630
|
1. Silently explore the codebase extensively (5-15 minutes of reading is normal)
|
|
26567
26631
|
2. Read related files, trace dependencies, understand the full context
|
|
@@ -26580,6 +26644,8 @@ Minimal status updates. Focus on results, not play-by-play. Report completion wi
|
|
|
26580
26644
|
var DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5 = `<Category_Context name="deep">
|
|
26581
26645
|
You are operating in DEEP mode. This is the category reserved for goal-oriented autonomous work on hairy problems that reward thorough exploration and comprehensive solutions.
|
|
26582
26646
|
|
|
26647
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
26648
|
+
|
|
26583
26649
|
The orchestrator chose this category because the task benefits from depth over speed. You should feel empowered to spend the time needed: five to fifteen minutes of silent exploration before the first edit is normal and correct. Rushing to implementation on a deep task is a failure mode, not a feature.
|
|
26584
26650
|
|
|
26585
26651
|
# How deep mode adjusts the base behavior
|
|
@@ -26598,12 +26664,27 @@ The orchestrator chose this category because the task benefits from depth over s
|
|
|
26598
26664
|
|
|
26599
26665
|
**Status cadence: sparse.** The user is not on the other side of this conversation; the orchestrator is, and they will synthesize your progress. Send commentary only at meaningful phase transitions (starting exploration, starting implementation, starting verification, hitting a genuine blocker). Do not narrate every tool call; silence during focused work is expected.
|
|
26600
26666
|
</Category_Context>`;
|
|
26667
|
+
function resolveUltrabrainCategoryPromptAppend(model) {
|
|
26668
|
+
if (model && isGpt6Model(model)) {
|
|
26669
|
+
return ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
26670
|
+
}
|
|
26671
|
+
return ULTRABRAIN_CATEGORY_PROMPT_APPEND;
|
|
26672
|
+
}
|
|
26601
26673
|
function resolveDeepCategoryPromptAppend(model) {
|
|
26674
|
+
if (model && isGpt6Model(model)) {
|
|
26675
|
+
return DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
26676
|
+
}
|
|
26602
26677
|
if (model && (isGpt5_5Model(model) || isGpt5_6Model(model))) {
|
|
26603
26678
|
return DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5;
|
|
26604
26679
|
}
|
|
26605
26680
|
return DEEP_CATEGORY_PROMPT_APPEND;
|
|
26606
26681
|
}
|
|
26682
|
+
function resolveUnspecifiedHighCategoryPromptAppend(model) {
|
|
26683
|
+
if (model && isGpt6Model(model)) {
|
|
26684
|
+
return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
26685
|
+
}
|
|
26686
|
+
return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND;
|
|
26687
|
+
}
|
|
26607
26688
|
var QUICK_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26608
26689
|
You are working on SMALL / QUICK tasks.
|
|
26609
26690
|
|
|
@@ -26624,20 +26705,26 @@ You are working on tasks that don't fit specific categories but require moderate
|
|
|
26624
26705
|
</Category_Context>`;
|
|
26625
26706
|
var UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
|
|
26626
26707
|
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`;
|
|
26708
|
+
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26709
|
+
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
26710
|
+
</Category_Context>`;
|
|
26711
|
+
var UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`;
|
|
26712
|
+
var GPT_FLAGSHIP_GATE_MODELS = ["gpt-6-astra", "gpt-5.6-sol"];
|
|
26627
26713
|
var OPENAI_CATEGORIES = [
|
|
26628
26714
|
{
|
|
26629
26715
|
name: "ultrabrain",
|
|
26630
|
-
config: { model: "openai/gpt-
|
|
26716
|
+
config: { model: "openai/gpt-6-astra", variant: "max" },
|
|
26631
26717
|
description: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
|
|
26632
|
-
promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND
|
|
26718
|
+
promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
|
|
26719
|
+
resolvePromptAppend: resolveUltrabrainCategoryPromptAppend
|
|
26633
26720
|
},
|
|
26634
26721
|
{
|
|
26635
26722
|
name: "deep",
|
|
26636
|
-
config: { model: "openai/gpt-
|
|
26637
|
-
description: "
|
|
26723
|
+
config: { model: "openai/gpt-6-astra", variant: "high" },
|
|
26724
|
+
description: "**MANDATORY: USE deep FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.** Deep autonomous problem-solving for complex research. ONE goal + ONE deliverable per call \u2014 multiple goals must fan out as parallel `deep` calls, never bundled into one.",
|
|
26638
26725
|
promptAppend: DEEP_CATEGORY_PROMPT_APPEND,
|
|
26639
26726
|
resolvePromptAppend: resolveDeepCategoryPromptAppend,
|
|
26640
|
-
requiresModel:
|
|
26727
|
+
requiresModel: GPT_FLAGSHIP_GATE_MODELS
|
|
26641
26728
|
},
|
|
26642
26729
|
{
|
|
26643
26730
|
name: "quick",
|
|
@@ -26652,6 +26739,14 @@ var OPENAI_CATEGORIES = [
|
|
|
26652
26739
|
description: "Tasks that don't fit other categories, low effort required",
|
|
26653
26740
|
callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
26654
26741
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
26742
|
+
},
|
|
26743
|
+
{
|
|
26744
|
+
name: "unspecified-high",
|
|
26745
|
+
config: { model: "openai/gpt-6-astra", variant: "high" },
|
|
26746
|
+
description: "Tasks that don't fit other categories, high effort required",
|
|
26747
|
+
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
26748
|
+
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
|
|
26749
|
+
resolvePromptAppend: resolveUnspecifiedHighCategoryPromptAppend
|
|
26655
26750
|
}
|
|
26656
26751
|
];
|
|
26657
26752
|
|
|
@@ -26659,7 +26754,6 @@ var OPENAI_CATEGORIES = [
|
|
|
26659
26754
|
var BUILTIN_CATEGORIES = [
|
|
26660
26755
|
...GOOGLE_CATEGORIES,
|
|
26661
26756
|
...OPENAI_CATEGORIES,
|
|
26662
|
-
...ANTHROPIC_CATEGORIES,
|
|
26663
26757
|
...KIMI_CATEGORIES
|
|
26664
26758
|
];
|
|
26665
26759
|
function buildCategoryRecord(selector) {
|
|
@@ -26670,7 +26764,15 @@ var CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition2) => definition2.p
|
|
|
26670
26764
|
var CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition2) => definition2.description);
|
|
26671
26765
|
var CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition2) => definition2.callerGuidance);
|
|
26672
26766
|
var CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition2) => definition2.resolvePromptAppend !== undefined).map((definition2) => [definition2.name, definition2.resolvePromptAppend]));
|
|
26673
|
-
var BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition2) => definition2.requiresModel !== undefined).map((definition2) => [
|
|
26767
|
+
var BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition2) => definition2.requiresModel !== undefined).map((definition2) => [
|
|
26768
|
+
definition2.name,
|
|
26769
|
+
typeof definition2.requiresModel === "string" ? [definition2.requiresModel] : definition2.requiresModel
|
|
26770
|
+
]));
|
|
26771
|
+
function builtinCategoryGateModels(categoryName, requirementGateModel) {
|
|
26772
|
+
if (requirementGateModel !== undefined)
|
|
26773
|
+
return [requirementGateModel];
|
|
26774
|
+
return BUILTIN_CATEGORY_REQUIRES_MODEL[categoryName] ?? [];
|
|
26775
|
+
}
|
|
26674
26776
|
|
|
26675
26777
|
// packages/omo-opencode/src/tools/delegate-task/constants.ts
|
|
26676
26778
|
var PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = `<system>
|
|
@@ -26896,13 +26998,13 @@ YOU MUST END YOUR RESPONSE WITH THIS SECTION.
|
|
|
26896
26998
|
|
|
26897
26999
|
1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)
|
|
26898
27000
|
\`\`\`
|
|
26899
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
26900
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
27001
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="Task 1: ...")
|
|
27002
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="Task N: ...")
|
|
26901
27003
|
\`\`\`
|
|
26902
27004
|
|
|
26903
27005
|
2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL
|
|
26904
27006
|
\`\`\`
|
|
26905
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
27007
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="Task 2: ...")
|
|
26906
27008
|
\`\`\`
|
|
26907
27009
|
|
|
26908
27010
|
3. Continue until all waves complete
|
|
@@ -96612,7 +96714,7 @@ function getCachedVersion(options = {}) {
|
|
|
96612
96714
|
// package.json
|
|
96613
96715
|
var package_default = {
|
|
96614
96716
|
name: "oh-my-opencode",
|
|
96615
|
-
version: "5.0.0-beta.
|
|
96717
|
+
version: "5.0.0-beta.43",
|
|
96616
96718
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
96617
96719
|
main: "./dist/index.js",
|
|
96618
96720
|
types: "dist/index.d.ts",
|
|
@@ -96682,6 +96784,8 @@ var package_default = {
|
|
|
96682
96784
|
"packages/git-bash-mcp/dist",
|
|
96683
96785
|
"packages/shared-skills/package.json",
|
|
96684
96786
|
"packages/shared-skills/index.mjs",
|
|
96787
|
+
"packages/shared-skills/skill-source-filter.d.ts",
|
|
96788
|
+
"packages/shared-skills/skill-source-filter.mjs",
|
|
96685
96789
|
"packages/shared-skills/skills",
|
|
96686
96790
|
"packages/omo-codex/THIRD-PARTY-NOTICES.md",
|
|
96687
96791
|
"packages/omo-codex/marketplace.json",
|
|
@@ -96734,6 +96838,7 @@ var package_default = {
|
|
|
96734
96838
|
"build:binaries": "bun run script/build-binaries.ts",
|
|
96735
96839
|
"build:schema": "bun run script/build-schema.ts",
|
|
96736
96840
|
"build:omo-native": "bun run script/build-omo-native.ts",
|
|
96841
|
+
omob: "bun run script/build-omob.ts",
|
|
96737
96842
|
"build:omo-schema": "bun run script/build-omo-schema.ts",
|
|
96738
96843
|
"build:model-capabilities": "bun run script/build-model-capabilities.ts",
|
|
96739
96844
|
clean: "rm -rf dist",
|
|
@@ -96741,14 +96846,14 @@ var package_default = {
|
|
|
96741
96846
|
prepare: "bun run build",
|
|
96742
96847
|
postinstall: "node postinstall.mjs",
|
|
96743
96848
|
prepublishOnly: "bun run clean && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && bun run build",
|
|
96744
|
-
"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",
|
|
96849
|
+
"test:model-capabilities": "bun test --timeout 20000 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",
|
|
96745
96850
|
typecheck: "tsgo --noEmit && bun run typecheck:script && bun run typecheck:packages",
|
|
96746
96851
|
"typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/delegate-core/tsconfig.json && tsgo --noEmit -p packages/mcp-stdio-core/tsconfig.json && tsgo --noEmit -p packages/mcp-client-core/tsconfig.json && tsgo --noEmit -p packages/git-bash-mcp/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/lsp-core/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/omo-config-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/tmux-core/tsconfig.json && tsgo --noEmit -p packages/team-core/tsconfig.json && tsgo --noEmit -p packages/openclaw-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/memory-core/tsconfig.json && tsgo --noEmit -p packages/telemetry-core/tsconfig.json && tsgo --noEmit -p packages/claude-code-compat-core/tsconfig.json && tsgo --noEmit -p packages/skills-loader-core/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json && tsgo --noEmit -p packages/omo-codex/plugin/shared/tsconfig.json && tsgo --noEmit -p packages/omo-codex/tsconfig.json && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && tsgo --noEmit -p packages/senpi-task/tsconfig.json && tsgo --noEmit -p packages/pi-goal/tsconfig.json && tsgo --noEmit -p packages/pi-webfetch/tsconfig.json && tsgo --noEmit -p packages/omo-opencode/tsconfig.json && tsgo --noEmit -p packages/omo-native/tsconfig.json",
|
|
96747
96852
|
"typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
|
|
96748
|
-
test: "bun test",
|
|
96749
|
-
"test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && npm --prefix packages/omo-codex/plugin/components/ulw-loop test && bun run --cwd packages/omo-codex/plugin build && node scripts/check-third-party-notices.mjs --ship && bun test packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
|
|
96853
|
+
test: "bun test --timeout 20000",
|
|
96854
|
+
"test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && npm --prefix packages/omo-codex/plugin/components/ulw-loop test && bun run --cwd packages/omo-codex/plugin build && node scripts/check-third-party-notices.mjs --ship && bun test --timeout 20000 packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
|
|
96750
96855
|
"test:fast": "bun run script/test-fast.ts",
|
|
96751
|
-
"test:senpi": "bun run build:senpi-plugin && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && bun test packages/omo-senpi && bun test ./.agents/skills/senpi-qa/scripts/resolve-evidence-dir.test.mjs",
|
|
96856
|
+
"test:senpi": "bun run build:senpi-plugin && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && bun test --timeout 20000 packages/omo-senpi && bun test ./.agents/skills/senpi-qa/scripts/resolve-evidence-dir.test.mjs",
|
|
96752
96857
|
"test:windows-codex": "bun run test:codex",
|
|
96753
96858
|
"build:git-bash-mcp": "bun run --cwd packages/git-bash-mcp build",
|
|
96754
96859
|
"build:ast-grep-mcp": "bun run --cwd packages/ast-grep-mcp build"
|
|
@@ -96792,7 +96897,7 @@ var package_default = {
|
|
|
96792
96897
|
zod: "^4.4.3"
|
|
96793
96898
|
},
|
|
96794
96899
|
devDependencies: {
|
|
96795
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
96900
|
+
"@code-yeongyu/senpi": "2026.9.5",
|
|
96796
96901
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
96797
96902
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
96798
96903
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -96833,18 +96938,18 @@ var package_default = {
|
|
|
96833
96938
|
typescript: "^7.0.2"
|
|
96834
96939
|
},
|
|
96835
96940
|
optionalDependencies: {
|
|
96836
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
96837
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
96838
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
96839
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
96840
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
96841
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
96842
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
96843
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
96844
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
96845
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
96846
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
96847
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
96941
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.43",
|
|
96942
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.43",
|
|
96943
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.43",
|
|
96944
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.43",
|
|
96945
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.43",
|
|
96946
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.43",
|
|
96947
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.43",
|
|
96948
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.43",
|
|
96949
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.43",
|
|
96950
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.43",
|
|
96951
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.43",
|
|
96952
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.43"
|
|
96848
96953
|
},
|
|
96849
96954
|
overrides: {
|
|
96850
96955
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -100314,7 +100419,7 @@ Use \`task()\` with EITHER category OR agent (mutually exclusive):
|
|
|
100314
100419
|
task(
|
|
100315
100420
|
category="[category-name]",
|
|
100316
100421
|
load_skills=["skill-1", "skill-2"],
|
|
100317
|
-
run_in_background=
|
|
100422
|
+
run_in_background=true,
|
|
100318
100423
|
prompt="..."
|
|
100319
100424
|
)
|
|
100320
100425
|
|
|
@@ -100322,7 +100427,7 @@ task(
|
|
|
100322
100427
|
task(
|
|
100323
100428
|
subagent_type="[agent-name]",
|
|
100324
100429
|
load_skills=[],
|
|
100325
|
-
run_in_background=
|
|
100430
|
+
run_in_background=true,
|
|
100326
100431
|
prompt="..."
|
|
100327
100432
|
)
|
|
100328
100433
|
\`\`\`
|
|
@@ -100419,10 +100524,10 @@ Anything else \u2192 fire ALL of them in the SAME response, IN PARALLEL. One mes
|
|
|
100419
100524
|
|
|
100420
100525
|
\`\`\`typescript
|
|
100421
100526
|
// CORRECT: 4 independent tasks \u2192 4 task() calls in ONE response
|
|
100422
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
100423
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
100424
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
100425
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
100527
|
+
task(category="quick", load_skills=[], run_in_background=true, prompt="...task A...")
|
|
100528
|
+
task(category="quick", load_skills=[], run_in_background=true, prompt="...task B...")
|
|
100529
|
+
task(category="quick", load_skills=[], run_in_background=true, prompt="...task C...")
|
|
100530
|
+
task(category="quick", load_skills=[], run_in_background=true, prompt="...task D...")
|
|
100426
100531
|
|
|
100427
100532
|
// WRONG: same 4 tasks dispatched one per turn
|
|
100428
100533
|
// You are wasting wall-clock time and parallel capacity.
|
|
@@ -100436,7 +100541,7 @@ task(category="quick", load_skills=[], run_in_background=false, prompt="...task
|
|
|
100436
100541
|
|
|
100437
100542
|
**Background vs foreground:**
|
|
100438
100543
|
- **Exploration** (\`explore\`, \`librarian\`): \`run_in_background=true\` \u2014 non-blocking research
|
|
100439
|
-
- **Task execution** (\`category="..."\`): \`run_in_background=
|
|
100544
|
+
- **Task execution** (\`category="..."\`): \`run_in_background=true\` \u2014 the completion notification wakes you to verify; \`false\` only for a short child whose result gates your very next call
|
|
100440
100545
|
|
|
100441
100546
|
**Background management:**
|
|
100442
100547
|
- Collect with background task IDs (\`bg_...\`): \`background_output(task_id="bg_...")\`
|
|
@@ -100497,9 +100602,9 @@ Extract wisdom \u2192 include in EVERY dispatched prompt under "Inherited Wisdom
|
|
|
100497
100602
|
### 3.3 Invoke task() \u2014 Fan Out in One Response
|
|
100498
100603
|
|
|
100499
100604
|
\`\`\`typescript
|
|
100500
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
100501
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
100502
|
-
task(category="...", load_skills=[...], run_in_background=
|
|
100605
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="[6-SECTION PROMPT]")
|
|
100606
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="[6-SECTION PROMPT]")
|
|
100607
|
+
task(category="...", load_skills=[...], run_in_background=true, prompt="[6-SECTION PROMPT]")
|
|
100503
100608
|
\`\`\`
|
|
100504
100609
|
|
|
100505
100610
|
3 independent tasks \u2192 3 calls in this response.
|
|
@@ -103349,8 +103454,8 @@ Before acting, survey the skills available in this system: scan their descriptio
|
|
|
103349
103454
|
|----------|-------------|------------|
|
|
103350
103455
|
| explore agent | Need codebase patterns you don't have | \`task(subagent_type="explore", load_skills=[], run_in_background=true, ...)\` |
|
|
103351
103456
|
| librarian agent | External library docs, OSS examples | \`task(subagent_type="librarian", load_skills=[], run_in_background=true, ...)\` |
|
|
103352
|
-
| oracle agent | Stuck on architecture/debugging after 2+ attempts | \`task(subagent_type="oracle", load_skills=[], run_in_background=
|
|
103353
|
-
| plan agent | Discovery leaves unresolved design uncertainty: unclear boundaries, competing decompositions, or uncertain dependency order | \`task(subagent_type="plan", load_skills=[], run_in_background=
|
|
103457
|
+
| oracle agent | Stuck on architecture/debugging after 2+ attempts | \`task(subagent_type="oracle", load_skills=[], run_in_background=true, ...)\` |
|
|
103458
|
+
| plan agent | Discovery leaves unresolved design uncertainty: unclear boundaries, competing decompositions, or uncertain dependency order | \`task(subagent_type="plan", load_skills=[], run_in_background=true, ...)\` |
|
|
103354
103459
|
| task category | Specialized work matching a category | \`task(category="...", load_skills=[...], run_in_background=true)\` |
|
|
103355
103460
|
|
|
103356
103461
|
<tool_usage_rules>
|
|
@@ -105666,6 +105771,8 @@ function showToast(ctx, sessionID) {
|
|
|
105666
105771
|
function getNativeSisyphusGptVariant(model) {
|
|
105667
105772
|
if (isGpt5_5Model(model.modelID))
|
|
105668
105773
|
return "medium";
|
|
105774
|
+
if (isGpt6Model(model.modelID))
|
|
105775
|
+
return "high";
|
|
105669
105776
|
const chain = AGENT_MODEL_REQUIREMENTS["sisyphus"]?.fallbackChain ?? [];
|
|
105670
105777
|
const exactMatch = chain.find((entry) => entry.providers.includes(model.providerID) && entry.model === model.modelID);
|
|
105671
105778
|
if (exactMatch?.variant !== undefined) {
|
|
@@ -105679,13 +105786,13 @@ function createNoSisyphusGptHook(ctx) {
|
|
|
105679
105786
|
const rawAgent = input.agent ?? getSessionAgent(input.sessionID) ?? "";
|
|
105680
105787
|
const agentKey = getAgentConfigKey(rawAgent);
|
|
105681
105788
|
const modelID = input.model?.modelID;
|
|
105682
|
-
if (agentKey === "sisyphus" && input.model && modelID && isGptNativeSisyphusModel(modelID) && output?.message && output.message.variant === undefined) {
|
|
105789
|
+
if (agentKey === "sisyphus" && input.model && modelID && (isGptNativeSisyphusModel(modelID) || isGpt6Model(modelID)) && output?.message && output.message.variant === undefined) {
|
|
105683
105790
|
const variant = getNativeSisyphusGptVariant(input.model);
|
|
105684
105791
|
if (variant !== undefined) {
|
|
105685
105792
|
output.message.variant = variant;
|
|
105686
105793
|
}
|
|
105687
105794
|
}
|
|
105688
|
-
if (agentKey === "sisyphus" && modelID && isGptModel(modelID) && !isGptNativeSisyphusModel(modelID)) {
|
|
105795
|
+
if (agentKey === "sisyphus" && modelID && isGptModel(modelID) && !isGptNativeSisyphusModel(modelID) && !isGpt6Model(modelID)) {
|
|
105689
105796
|
showToast(ctx, input.sessionID);
|
|
105690
105797
|
input.agent = resolveRegisteredAgentName("hephaestus") ?? "hephaestus";
|
|
105691
105798
|
if (output?.message) {
|
|
@@ -107536,7 +107643,7 @@ function loadSharedSkillTemplate(skillName) {
|
|
|
107536
107643
|
// packages/skills-loader-core/src/features/builtin-skills/skills/frontend.ts
|
|
107537
107644
|
var frontendSkill = {
|
|
107538
107645
|
name: "frontend",
|
|
107539
|
-
description: "
|
|
107646
|
+
description: "Builds, styles, and polishes web UI and UX. Use for any frontend, page, component, styling, layout, animation, or visual-quality task, or when asked to make an interface look or feel a certain way.",
|
|
107540
107647
|
template: loadSharedSkillTemplate("frontend")
|
|
107541
107648
|
};
|
|
107542
107649
|
// packages/skills-loader-core/src/features/builtin-skills/skills/git-master-skill-metadata.ts
|
|
@@ -108879,26 +108986,26 @@ EOF
|
|
|
108879
108986
|
// packages/skills-loader-core/src/features/builtin-skills/skills/review-work.ts
|
|
108880
108987
|
var reviewWorkSkill = {
|
|
108881
108988
|
name: "review-work",
|
|
108882
|
-
description: "Post-implementation review
|
|
108989
|
+
description: "Post-implementation gate review: run manual QA on the real surface yourself, then launch ONE gate reviewer (never a panel) to audit goal, constraints, code quality, security, missed context, and QA evidence. Use before a PR handoff or when the user explicitly asks to review completed work.",
|
|
108883
108990
|
template: loadSharedSkillTemplate("review-work")
|
|
108884
108991
|
};
|
|
108885
108992
|
// packages/skills-loader-core/src/features/builtin-skills/skills/remove-ai-slops.ts
|
|
108886
108993
|
var removeAiSlopsSkill = {
|
|
108887
108994
|
name: "remove-ai-slops",
|
|
108888
|
-
description:
|
|
108995
|
+
description: "Removes AI-generated code smells from branch changes or an explicit file list behind regression tests. Use when the user asks to clean up, deslop, or remove AI-slop patterns from recent changes.",
|
|
108889
108996
|
template: loadSharedSkillTemplate("remove-ai-slops")
|
|
108890
108997
|
};
|
|
108891
108998
|
// packages/skills-loader-core/src/features/builtin-skills/skills/init-deep.ts
|
|
108892
108999
|
var initDeepSkill = {
|
|
108893
109000
|
name: "init-deep",
|
|
108894
|
-
description: "
|
|
109001
|
+
description: "Initializes a hierarchical AGENTS.md knowledge base for a project. Use when a repo needs its structure, commands, and conventions documented for agents.",
|
|
108895
109002
|
template: loadSharedSkillTemplate("init-deep"),
|
|
108896
109003
|
argumentHint: "[--create-new] [--max-depth=N]"
|
|
108897
109004
|
};
|
|
108898
109005
|
// packages/skills-loader-core/src/features/builtin-skills/skills/debugging.ts
|
|
108899
109006
|
var debuggingSkill = {
|
|
108900
109007
|
name: "debugging",
|
|
108901
|
-
description: "
|
|
109008
|
+
description: "Runs a hypothesis-driven debugging loop across any language or binary, escalating to orthogonal oracle angles and locking the fix with a failing test. Use for crashes, silent failures, hangs, wrong responses, memory leaks, async misbehavior, or reverse engineering.",
|
|
108902
109009
|
template: loadSharedSkillTemplate("debugging")
|
|
108903
109010
|
};
|
|
108904
109011
|
// packages/skills-loader-core/src/features/builtin-skills/security-research/SKILL.md
|
|
@@ -109117,7 +109224,7 @@ var securityReviewSkill = {
|
|
|
109117
109224
|
// packages/skills-loader-core/src/features/builtin-skills/skills/visual-qa.ts
|
|
109118
109225
|
var visualQaSkill = {
|
|
109119
109226
|
name: "visual-qa",
|
|
109120
|
-
description: "
|
|
109227
|
+
description: "Runs rigorous visual QA across web, terminal, and paginated surfaces with screenshot evidence and a verdict. Use for any UI build or change, or when asked whether a page, component, or TUI looks right.",
|
|
109121
109228
|
template: loadSharedSkillTemplate("visual-qa")
|
|
109122
109229
|
};
|
|
109123
109230
|
// packages/skills-loader-core/src/features/builtin-skills/skills/team-mode.ts
|
|
@@ -112274,7 +112381,7 @@ to continue:`))
|
|
|
112274
112381
|
return;
|
|
112275
112382
|
output.output = outputText.trimEnd() + `
|
|
112276
112383
|
|
|
112277
|
-
to continue: task(task_id="${taskId}", load_skills=[], run_in_background=
|
|
112384
|
+
to continue: task(task_id="${taskId}", load_skills=[], run_in_background=true, prompt="...")`;
|
|
112278
112385
|
};
|
|
112279
112386
|
return {
|
|
112280
112387
|
"tool.execute.after": toolExecuteAfter
|
|
@@ -113327,7 +113434,7 @@ Correct action \u2014 delegate via \`task()\`. Fan out in PARALLEL when multiple
|
|
|
113327
113434
|
task(
|
|
113328
113435
|
category="quick",
|
|
113329
113436
|
load_skills=[],
|
|
113330
|
-
run_in_background=
|
|
113437
|
+
run_in_background=true,
|
|
113331
113438
|
prompt="[6 sections: TASK / EXPECTED OUTCOME / REQUIRED TOOLS / MUST DO / MUST NOT DO / CONTEXT]"
|
|
113332
113439
|
)
|
|
113333
113440
|
\`\`\`
|
|
@@ -115815,7 +115922,7 @@ var DELEGATE_TASK_ERROR_PATTERNS = [
|
|
|
115815
115922
|
{
|
|
115816
115923
|
pattern: "run_in_background",
|
|
115817
115924
|
errorType: "missing_run_in_background",
|
|
115818
|
-
fixHint: "Add run_in_background=
|
|
115925
|
+
fixHint: "Add run_in_background=true (the standard spawn) or run_in_background=false for a short child whose result gates your very next call"
|
|
115819
115926
|
},
|
|
115820
115927
|
{
|
|
115821
115928
|
pattern: "load_skills",
|
|
@@ -115903,7 +116010,7 @@ function buildRetryGuidance(errorInfo) {
|
|
|
115903
116010
|
description="Task description",
|
|
115904
116011
|
prompt="Detailed prompt...",
|
|
115905
116012
|
category="unspecified-low", // OR subagent_type="explore"
|
|
115906
|
-
run_in_background=
|
|
116013
|
+
run_in_background=true,
|
|
115907
116014
|
load_skills=[]
|
|
115908
116015
|
)
|
|
115909
116016
|
\`\`\`
|
|
@@ -131057,10 +131164,10 @@ function resolveCategoryConfig(categoryName, options) {
|
|
|
131057
131164
|
userConfig = { ...configuredUserConfig, models };
|
|
131058
131165
|
}
|
|
131059
131166
|
const categoryReq = CATEGORY_MODEL_REQUIREMENTS[categoryName];
|
|
131060
|
-
const
|
|
131061
|
-
if (
|
|
131062
|
-
if (!isModelAvailable2(requiredModel, availableModels)) {
|
|
131063
|
-
log2(`[resolveCategoryConfig] Category ${categoryName} requires ${
|
|
131167
|
+
const requiredModels = builtinCategoryGateModels(categoryName, categoryReq?.requiresModel);
|
|
131168
|
+
if (requiredModels.length > 0 && availableModels && !hasExplicitUserConfig) {
|
|
131169
|
+
if (!requiredModels.some((requiredModel) => isModelAvailable2(requiredModel, availableModels))) {
|
|
131170
|
+
log2(`[resolveCategoryConfig] Category ${categoryName} requires ${requiredModels.join(" or ")} but not available`);
|
|
131064
131171
|
return null;
|
|
131065
131172
|
}
|
|
131066
131173
|
}
|
|
@@ -131238,7 +131345,8 @@ async function resolveCategoryExecution(args, executorCtx, inheritedModel, syste
|
|
|
131238
131345
|
});
|
|
131239
131346
|
if (!resolved) {
|
|
131240
131347
|
const requirement2 = CATEGORY_MODEL_REQUIREMENTS[categoryName];
|
|
131241
|
-
const
|
|
131348
|
+
const requiredModels = builtinCategoryGateModels(categoryName, requirement2?.requiresModel);
|
|
131349
|
+
const requiredModel = requiredModels.length > 0 ? requiredModels.join('" or "') : undefined;
|
|
131242
131350
|
const allCategoryNames = Object.keys(enabledCategories).join(", ");
|
|
131243
131351
|
const configuredModels = userCategories?.[categoryName]?.models;
|
|
131244
131352
|
if (configuredModels && availableModels.size > 0) {
|
|
@@ -131742,8 +131850,7 @@ function createDelegateTaskPresentation(options) {
|
|
|
131742
131850
|
Available categories:
|
|
131743
131851
|
${categoryList}
|
|
131744
131852
|
- subagent_type: Use specific agent directly (explore, librarian, oracle, metis, momus)
|
|
131745
|
-
- run_in_background:
|
|
131746
|
-
Sync waits use a 30-minute inactivity window: OpenCode busy/retry/running status resets the window, so this is not a total wall-clock limit.
|
|
131853
|
+
- run_in_background: true is the standard spawn: returns a background task ID like \`bg_...\` at once and the completion notification delivers the result. false blocks this response until the child finishes (a 30-minute inactivity window, reset by OpenCode busy/retry/running status, not a total wall-clock limit); use it only for a short child whose result gates your very next call. Omitted counts as false.
|
|
131747
131854
|
- task_id: Continuation session id (\`ses_...\`) from task metadata. Continues the same subagent session with FULL CONTEXT PRESERVED; not the background task id (\`bg_...\`).
|
|
131748
131855
|
- command: The command that triggered this task (optional, for slash command tracking).
|
|
131749
131856
|
|
|
@@ -131795,7 +131902,7 @@ var delegateTaskArgsSchema = {
|
|
|
131795
131902
|
load_skills: tool.schema.array(tool.schema.string()).optional().describe('Skill names to inject. Optional; defaults to [] when omitted. Pass an explicit array (e.g. ["git-master"]) for skill-specific tasks.'),
|
|
131796
131903
|
description: tool.schema.string().optional().describe("Short task description (3-5 words). Auto-generated from prompt if omitted."),
|
|
131797
131904
|
prompt: tool.schema.string().describe("Full detailed prompt for the agent"),
|
|
131798
|
-
run_in_background: tool.schema.boolean().optional().describe("
|
|
131905
|
+
run_in_background: tool.schema.boolean().optional().describe("true is the standard spawn: returns a background task ID `bg_...` at once; the completion notification delivers the result, which background_output reads. false blocks this response until the child finishes; use it only for a short child whose result gates your very next call. Omitted counts as false."),
|
|
131799
131906
|
category: tool.schema.string().optional().describe("REQUIRED if subagent_type not provided. Do NOT provide both category and subagent_type."),
|
|
131800
131907
|
subagent_type: tool.schema.string().optional().describe("REQUIRED if category not provided. Do NOT provide both category and subagent_type."),
|
|
131801
131908
|
task_id: tool.schema.string().optional().describe("Continuation session id (`ses_...`) from task metadata; not a background task id (`bg_...`)."),
|
|
@@ -152806,14 +152913,14 @@ Check the \`skill\` tool for available skills and their descriptions. For EVERY
|
|
|
152806
152913
|
task(
|
|
152807
152914
|
category="[selected-category]",
|
|
152808
152915
|
load_skills=["skill-1", "skill-2"], // Include ALL relevant skills - ESPECIALLY user-installed ones
|
|
152809
|
-
run_in_background=
|
|
152916
|
+
run_in_background=true,
|
|
152810
152917
|
prompt="..."
|
|
152811
152918
|
)
|
|
152812
152919
|
\`\`\`
|
|
152813
152920
|
|
|
152814
152921
|
**ANTI-PATTERN (will produce poor results):**
|
|
152815
152922
|
\`\`\`typescript
|
|
152816
|
-
task(category="...", load_skills=[], run_in_background=
|
|
152923
|
+
task(category="...", load_skills=[], run_in_background=true, prompt="...") // Empty load_skills without justification
|
|
152817
152924
|
\`\`\`
|
|
152818
152925
|
|
|
152819
152926
|
---
|
|
@@ -152822,23 +152929,23 @@ task(category="...", load_skills=[], run_in_background=false, prompt="...") //
|
|
|
152822
152929
|
|
|
152823
152930
|
Every delegation MUST use the category that matches the task's domain. Mismatched categories produce measurably worse output because each category runs on a model optimized for that specific domain.
|
|
152824
152931
|
|
|
152825
|
-
**VISUAL
|
|
152932
|
+
**ANY VISUAL DESIGN RELATION = ALWAYS \`visual-engineering\`. NO EXCEPTIONS.**
|
|
152826
152933
|
|
|
152827
|
-
Any task
|
|
152934
|
+
Any task with even a minor visual-design relationship \u2014 including UI, UX, CSS, styling, layout, animation, design systems, frontend components, screenshots, diagrams, visual polish, or presentation \u2014 MUST go to \`visual-engineering\`. Never delegate it to \`quick\`, \`unspecified-*\`, or any other category.
|
|
152828
152935
|
|
|
152829
152936
|
\`\`\`typescript
|
|
152830
152937
|
// CORRECT: Visual work \u2192 visual-engineering category
|
|
152831
|
-
task(category="visual-engineering", load_skills=["frontend"], run_in_background=
|
|
152938
|
+
task(category="visual-engineering", load_skills=["frontend"], run_in_background=true, prompt="Redesign the sidebar layout with new spacing...")
|
|
152832
152939
|
|
|
152833
152940
|
// WRONG: Visual work in wrong category - WILL PRODUCE INFERIOR RESULTS
|
|
152834
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
152941
|
+
task(category="quick", load_skills=[], run_in_background=true, prompt="Redesign the sidebar layout with new spacing...")
|
|
152835
152942
|
\`\`\`
|
|
152836
152943
|
|
|
152837
152944
|
| Task Domain | MUST Use Category |
|
|
152838
152945
|
|---|---|
|
|
152839
|
-
| UI, styling, animations, layout, design | \`visual-engineering\` |
|
|
152840
|
-
| Hard logic
|
|
152841
|
-
|
|
|
152946
|
+
| Visual design, UI, styling, animations, layout, design systems | \`visual-engineering\` |
|
|
152947
|
+
| Hard logic and architecture decisions | \`ultrabrain\` |
|
|
152948
|
+
| 3D graphics, computer use, browser use, backend, logic, algorithms, CAPTCHA solving, multimodal, autonomous research + end-to-end implementation | \`deep\` |
|
|
152842
152949
|
| Single-file typo, trivial config change | \`quick\` |
|
|
152843
152950
|
|
|
152844
152951
|
**When in doubt about category, it is almost never \`quick\` or \`unspecified-*\`. Match the domain.**`;
|
|
@@ -152924,7 +153031,7 @@ task(subagent_type="explore", run_in_background=true, ...)
|
|
|
152924
153031
|
// packages/omo-opencode/src/agents/frontier-tool-schema-guard.ts
|
|
152925
153032
|
var FRONTIER_TOOL_SCHEMA_NAMES = ["grep", "glob"];
|
|
152926
153033
|
function getFrontierToolSchemaPermission(model) {
|
|
152927
|
-
return isClaudeOpus47OrLaterModel(model) || isGpt5_5Model(model) || isGpt5_6Model(model) ? { grep: "deny", glob: "deny" } : {};
|
|
153034
|
+
return isClaudeOpus47OrLaterModel(model) || isGpt5_5Model(model) || isGpt5_6Model(model) || isGpt6Model(model) ? { grep: "deny", glob: "deny" } : {};
|
|
152928
153035
|
}
|
|
152929
153036
|
function applyFrontierToolSchemaPermission(permission, model, explicitPermission, explicitTools) {
|
|
152930
153037
|
if (!permission)
|
|
@@ -153047,10 +153154,10 @@ Every \`task()\` output exposes a continuation session ID (\`ses_...\`). Pass it
|
|
|
153047
153154
|
|
|
153048
153155
|
\`\`\`typescript
|
|
153049
153156
|
// WRONG: Starting fresh loses all context
|
|
153050
|
-
task(category="quick", load_skills=[], run_in_background=
|
|
153157
|
+
task(category="quick", load_skills=[], run_in_background=true, description="Fix type error", prompt="Fix the type error in auth.ts...")
|
|
153051
153158
|
|
|
153052
153159
|
// CORRECT: Resume preserves everything
|
|
153053
|
-
task(task_id="ses_abc123", load_skills=[], run_in_background=
|
|
153160
|
+
task(task_id="ses_abc123", load_skills=[], run_in_background=true, description="Fix type error", prompt="Fix: Type error on line 42")
|
|
153054
153161
|
\`\`\`
|
|
153055
153162
|
|
|
153056
153163
|
**After EVERY delegation, STORE the \`ses_...\` continuation ID for potential continuation.**
|
|
@@ -153666,7 +153773,7 @@ function buildGeminiToolCallExamples() {
|
|
|
153666
153773
|
**User**: "Add a new /health endpoint to the API"
|
|
153667
153774
|
**CORRECT**:
|
|
153668
153775
|
\`\`\`
|
|
153669
|
-
\u2192 Call Task(category="quick", load_skills=["typescript-programmer"], run_in_background=
|
|
153776
|
+
\u2192 Call Task(category="quick", load_skills=["typescript-programmer"], run_in_background=true, prompt="...")
|
|
153670
153777
|
\u2192 (After agent completes) Read changed files to verify
|
|
153671
153778
|
\u2192 Call LspDiagnostics on changed files
|
|
153672
153779
|
\u2192 Report
|
|
@@ -155918,10 +156025,14 @@ ${styleBlock}`;
|
|
|
155918
156025
|
var GPT_PROMPT_IDENTITIES = {
|
|
155919
156026
|
"gpt-5.5": "GPT-5.5",
|
|
155920
156027
|
"gpt-5.6-sol": "GPT-5.6 Sol",
|
|
156028
|
+
"gpt-6-astra": "GPT-6 Astra",
|
|
155921
156029
|
"gpt-family": "a GPT-family model"
|
|
155922
156030
|
};
|
|
155923
156031
|
function getGptPromptIdentityKey(model) {
|
|
155924
156032
|
const modelID = model?.split("/").at(-1)?.toLowerCase();
|
|
156033
|
+
if (modelID?.includes("gpt-6-astra")) {
|
|
156034
|
+
return "gpt-6-astra";
|
|
156035
|
+
}
|
|
155925
156036
|
if (modelID?.includes("gpt-5.6-sol") || modelID?.includes("gpt-5-6-sol")) {
|
|
155926
156037
|
return "gpt-5.6-sol";
|
|
155927
156038
|
}
|
|
@@ -156312,7 +156423,7 @@ Don't narrate every tool call, but don't go silent for long stretches on complex
|
|
|
156312
156423
|
|
|
156313
156424
|
Parameters to always think about:
|
|
156314
156425
|
|
|
156315
|
-
- \`run_in_background\`: \`true\`
|
|
156426
|
+
- \`run_in_background\`: \`true\` is the standard spawn; the completion notification delivers the result while you keep working or end the response. \`false\` blocks this response until the child finishes; use it only for a short child whose result gates your very next call.
|
|
156316
156427
|
- \`load_skills\`: evaluate every available skill before each delegation. Err toward loading when the skill's domain even loosely connects to the task.
|
|
156317
156428
|
- \`task_id\`: reuse for follow-ups. Do not start fresh sessions on continuations.
|
|
156318
156429
|
- \`description\`: a 3-5 word label. Optional but improves observability.
|
|
@@ -156323,7 +156434,7 @@ Both are background pattern search with narrative synthesis. Always fire them wi
|
|
|
156323
156434
|
|
|
156324
156435
|
## oracle
|
|
156325
156436
|
|
|
156326
|
-
Read-only consultant.
|
|
156437
|
+
Read-only consultant. Run it in the background and continue with work that does not depend on its answer; never proceed with work Oracle was asked to decide before its result arrives.
|
|
156327
156438
|
|
|
156328
156439
|
## skill loading
|
|
156329
156440
|
|
|
@@ -157355,7 +157466,7 @@ function resolveSisyphusPromptFamily(model) {
|
|
|
157355
157466
|
return "kimi-k2-7";
|
|
157356
157467
|
if (isKimiK2Model(model))
|
|
157357
157468
|
return "kimi-k2-6";
|
|
157358
|
-
if (isGpt5_5Model(model) || isGpt5_6Model(model))
|
|
157469
|
+
if (isGpt5_5Model(model) || isGpt5_6Model(model) || isGpt6Model(model))
|
|
157359
157470
|
return "gpt-5-5";
|
|
157360
157471
|
if (isGptNativeSisyphusModel(model))
|
|
157361
157472
|
return "gpt-5-4";
|
|
@@ -157809,7 +157920,7 @@ function createOracleAgent(model) {
|
|
|
157809
157920
|
...restrictions,
|
|
157810
157921
|
prompt: ORACLE_DEFAULT_PROMPT
|
|
157811
157922
|
};
|
|
157812
|
-
if (isGpt5_6Model(model)) {
|
|
157923
|
+
if (isGpt5_6Model(model) || isGpt6Model(model)) {
|
|
157813
157924
|
return {
|
|
157814
157925
|
...base,
|
|
157815
157926
|
prompt: ORACLE_GPT_5_5_PROMPT,
|
|
@@ -158760,7 +158871,7 @@ ${categoryRows.join(`
|
|
|
158760
158871
|
`)}
|
|
158761
158872
|
|
|
158762
158873
|
\`\`\`typescript
|
|
158763
|
-
task(category="[category-name]", load_skills=[...], run_in_background=
|
|
158874
|
+
task(category="[category-name]", load_skills=[...], run_in_background=true, prompt="...")
|
|
158764
158875
|
\`\`\``;
|
|
158765
158876
|
}
|
|
158766
158877
|
function buildSkillsSection2(skills2) {
|
|
@@ -158784,7 +158895,7 @@ Read each skill's description in the section below and ask: "Does this skill's d
|
|
|
158784
158895
|
|
|
158785
158896
|
**Usage:**
|
|
158786
158897
|
\`\`\`typescript
|
|
158787
|
-
task(category="[category]", load_skills=["skill-1", "skill-2"], run_in_background=
|
|
158898
|
+
task(category="[category]", load_skills=["skill-1", "skill-2"], run_in_background=true, prompt="...")
|
|
158788
158899
|
\`\`\`
|
|
158789
158900
|
|
|
158790
158901
|
**IMPORTANT:**
|
|
@@ -159229,7 +159340,7 @@ function createMomusAgent(model) {
|
|
|
159229
159340
|
...restrictions,
|
|
159230
159341
|
prompt: MOMUS_DEFAULT_PROMPT
|
|
159231
159342
|
};
|
|
159232
|
-
if (isGpt5_6Model(model)) {
|
|
159343
|
+
if (isGpt5_6Model(model) || isGpt6Model(model)) {
|
|
159233
159344
|
return {
|
|
159234
159345
|
...base,
|
|
159235
159346
|
prompt: MOMUS_GPT_5_6_PROMPT,
|
|
@@ -160281,6 +160392,7 @@ var GPT_5_3_CODEX_RE = /^gpt-5[.-]3-codex(?:$|[.-])/i;
|
|
|
160281
160392
|
var GPT_5_4_RE = /^gpt-5[.-]4(?:$|[.-])/i;
|
|
160282
160393
|
var GPT_5_5_RE = /^gpt-5[.-]5(?:$|[.-])/i;
|
|
160283
160394
|
var GPT_5_6_RE = /^gpt-5[.-]6(?:$|[.-])/i;
|
|
160395
|
+
var GPT_6_RE = /^gpt-6(?:$|[.-])/i;
|
|
160284
160396
|
var HOSTED_VENDOR_PREFIX_RE = /^(?:[^./]+\.)+(gpt-5[.-].*)$/i;
|
|
160285
160397
|
|
|
160286
160398
|
class UnsupportedHephaestusModelError extends Error {
|
|
@@ -160299,7 +160411,7 @@ function isHephaestusSupportedModel(model) {
|
|
|
160299
160411
|
if (!model)
|
|
160300
160412
|
return false;
|
|
160301
160413
|
const modelName = extractModelName3(model);
|
|
160302
|
-
return GPT_5_3_CODEX_RE.test(modelName) || GPT_5_4_RE.test(modelName) || GPT_5_5_RE.test(modelName) || GPT_5_6_RE.test(modelName);
|
|
160414
|
+
return GPT_5_3_CODEX_RE.test(modelName) || GPT_5_4_RE.test(modelName) || GPT_5_5_RE.test(modelName) || GPT_5_6_RE.test(modelName) || GPT_6_RE.test(modelName);
|
|
160303
160415
|
}
|
|
160304
160416
|
function assertHephaestusSupportedModel(model) {
|
|
160305
160417
|
if (!isHephaestusSupportedModel(model)) {
|
|
@@ -160308,7 +160420,7 @@ function assertHephaestusSupportedModel(model) {
|
|
|
160308
160420
|
}
|
|
160309
160421
|
function getHephaestusPromptSource(model) {
|
|
160310
160422
|
assertHephaestusSupportedModel(model);
|
|
160311
|
-
if (model && isGpt5_6Model(model)) {
|
|
160423
|
+
if (model && (isGpt5_6Model(model) || isGpt6Model(model))) {
|
|
160312
160424
|
return "gpt-5-6";
|
|
160313
160425
|
}
|
|
160314
160426
|
if (model && isGpt5_5Model(model)) {
|
|
@@ -161387,7 +161499,7 @@ You may invoke \`task()\` with \`subagent_type\` set to \`explore\`, \`librarian
|
|
|
161387
161499
|
|
|
161388
161500
|
- \`explore\`: internal codebase pattern search with synthesis. Parallel batches of 2-5 with \`run_in_background=true\`.
|
|
161389
161501
|
- \`librarian\`: external docs, open-source code, web references. Same pattern.
|
|
161390
|
-
- \`oracle\`: high-reasoning consultant.
|
|
161502
|
+
- \`oracle\`: high-reasoning consultant. Run it in the background; continue with work that does not depend on the answer and never ship what it was asked to decide before the result arrives.
|
|
161391
161503
|
|
|
161392
161504
|
Every \`task()\` call needs \`load_skills\` (empty array \`[]\` is valid). Reuse \`task_id\` for follow-ups to preserve sub-agent context.
|
|
161393
161505
|
|
|
@@ -161723,7 +161835,7 @@ function getSisyphusJuniorPromptSource(model) {
|
|
|
161723
161835
|
if (model && isKimiK2Model(model))
|
|
161724
161836
|
return "kimi-k2";
|
|
161725
161837
|
if (model && isGptModel(model)) {
|
|
161726
|
-
if (isGpt5_5Model(model) || isGpt5_6Model(model))
|
|
161838
|
+
if (isGpt5_5Model(model) || isGpt5_6Model(model) || isGpt6Model(model))
|
|
161727
161839
|
return "gpt-5-5";
|
|
161728
161840
|
const lower = model.toLowerCase();
|
|
161729
161841
|
if (lower.includes("gpt-5.4") || lower.includes("gpt-5-4"))
|