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/tui.js
CHANGED
|
@@ -3269,7 +3269,7 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
3269
3269
|
fallbackChain: [
|
|
3270
3270
|
{
|
|
3271
3271
|
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3272
|
-
model: "claude-fable-5",
|
|
3272
|
+
model: "claude-fable-5-1",
|
|
3273
3273
|
variant: "xhigh"
|
|
3274
3274
|
},
|
|
3275
3275
|
{
|
|
@@ -3295,10 +3295,9 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
3295
3295
|
},
|
|
3296
3296
|
momus: {
|
|
3297
3297
|
fallbackChain: [
|
|
3298
|
-
{ providers: ["openai", "openai-codex"], model: "gpt-
|
|
3299
|
-
{ providers: ["github-copilot"], model: "gpt-
|
|
3300
|
-
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-
|
|
3301
|
-
{ providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
|
|
3298
|
+
{ providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "xhigh" },
|
|
3299
|
+
{ providers: ["github-copilot"], model: "gpt-6-astra", variant: "high" },
|
|
3300
|
+
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "high" },
|
|
3302
3301
|
{
|
|
3303
3302
|
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3304
3303
|
model: "claude-opus-5",
|
|
@@ -3350,6 +3349,11 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3350
3349
|
CATEGORY_MODEL_REQUIREMENTS = {
|
|
3351
3350
|
"visual-engineering": {
|
|
3352
3351
|
fallbackChain: [
|
|
3352
|
+
{
|
|
3353
|
+
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
3354
|
+
model: "claude-fable-5-1",
|
|
3355
|
+
variant: "max"
|
|
3356
|
+
},
|
|
3353
3357
|
{
|
|
3354
3358
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
3355
3359
|
model: "claude-opus-5",
|
|
@@ -3359,17 +3363,14 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3359
3363
|
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
3360
3364
|
model: "kimi-k3",
|
|
3361
3365
|
variant: "max"
|
|
3362
|
-
},
|
|
3363
|
-
{ providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.2", variant: "max" },
|
|
3364
|
-
{
|
|
3365
|
-
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
3366
|
-
model: "gpt-5.6-sol",
|
|
3367
|
-
variant: "medium"
|
|
3368
3366
|
}
|
|
3369
3367
|
]
|
|
3370
3368
|
},
|
|
3371
3369
|
ultrabrain: {
|
|
3372
3370
|
fallbackChain: [
|
|
3371
|
+
{ providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "max" },
|
|
3372
|
+
{ providers: ["github-copilot"], model: "gpt-6-astra", variant: "max" },
|
|
3373
|
+
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "max" },
|
|
3373
3374
|
{ providers: ["openai", "openai-codex"], model: "gpt-5.6-sol", variant: "max" },
|
|
3374
3375
|
{ providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "max" },
|
|
3375
3376
|
{ providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "max" }
|
|
@@ -3377,6 +3378,11 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3377
3378
|
},
|
|
3378
3379
|
deep: {
|
|
3379
3380
|
fallbackChain: [
|
|
3381
|
+
{
|
|
3382
|
+
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
3383
|
+
model: "gpt-6-astra",
|
|
3384
|
+
variant: "high"
|
|
3385
|
+
},
|
|
3380
3386
|
{
|
|
3381
3387
|
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
3382
3388
|
model: "gpt-5.6-sol",
|
|
@@ -3388,7 +3394,7 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3388
3394
|
fallbackChain: [
|
|
3389
3395
|
{
|
|
3390
3396
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
3391
|
-
model: "claude-fable-5",
|
|
3397
|
+
model: "claude-fable-5-1",
|
|
3392
3398
|
variant: "xhigh"
|
|
3393
3399
|
},
|
|
3394
3400
|
{
|
|
@@ -3447,6 +3453,11 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3447
3453
|
},
|
|
3448
3454
|
"unspecified-high": {
|
|
3449
3455
|
fallbackChain: [
|
|
3456
|
+
{
|
|
3457
|
+
providers: ["openai", "openai-codex", "github-copilot", "opencode"],
|
|
3458
|
+
model: "gpt-6-astra",
|
|
3459
|
+
variant: "high"
|
|
3460
|
+
},
|
|
3450
3461
|
{
|
|
3451
3462
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
3452
3463
|
model: "claude-opus-5",
|
|
@@ -3462,17 +3473,16 @@ var init_category_model_requirements = __esm(() => {
|
|
|
3462
3473
|
},
|
|
3463
3474
|
writing: {
|
|
3464
3475
|
fallbackChain: [
|
|
3465
|
-
{
|
|
3466
|
-
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
3467
|
-
model: "kimi-k3",
|
|
3468
|
-
variant: "low"
|
|
3469
|
-
},
|
|
3470
3476
|
{
|
|
3471
3477
|
providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
|
|
3472
|
-
model: "claude-
|
|
3473
|
-
variant: "
|
|
3478
|
+
model: "claude-fable-5-1",
|
|
3479
|
+
variant: "medium"
|
|
3474
3480
|
},
|
|
3475
|
-
{
|
|
3481
|
+
{
|
|
3482
|
+
providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
|
|
3483
|
+
model: "kimi-k3",
|
|
3484
|
+
variant: "max"
|
|
3485
|
+
}
|
|
3476
3486
|
]
|
|
3477
3487
|
}
|
|
3478
3488
|
};
|
|
@@ -3556,11 +3566,11 @@ var init_model_capability_aliases = __esm(() => {
|
|
|
3556
3566
|
EXACT_ALIAS_RULES_BY_MODEL = new Map(EXACT_ALIAS_RULES.map((rule) => [rule.aliasModelID, rule]));
|
|
3557
3567
|
PATTERN_ALIAS_RULES = [
|
|
3558
3568
|
{
|
|
3559
|
-
ruleID: "openai-gpt-
|
|
3560
|
-
description: "Normalizes OpenCode's OpenAI GPT
|
|
3569
|
+
ruleID: "openai-gpt-fast-service-tier-alias",
|
|
3570
|
+
description: "Normalizes OpenCode's OpenAI GPT fast service-tier IDs to canonical snapshot IDs.",
|
|
3561
3571
|
providerIDs: ["openai"],
|
|
3562
3572
|
allowedSubproviderHosts: ["vercel"],
|
|
3563
|
-
match: (normalizedModelID) => /^gpt-5\.6-(?:sol|terra|luna)-fast$/.test(normalizedModelID),
|
|
3573
|
+
match: (normalizedModelID) => /^(?:gpt-5\.6-(?:sol|terra|luna)|gpt-6-astra)-fast$/.test(normalizedModelID),
|
|
3564
3574
|
canonicalize: (normalizedModelID) => normalizedModelID.slice(0, -"-fast".length)
|
|
3565
3575
|
},
|
|
3566
3576
|
{
|
|
@@ -3688,6 +3698,14 @@ var init_model_capability_heuristics = __esm(() => {
|
|
|
3688
3698
|
reasoningEfforts: ["none", "minimal", "low", "medium", "high"],
|
|
3689
3699
|
supportsTemperature: false
|
|
3690
3700
|
},
|
|
3701
|
+
{
|
|
3702
|
+
family: "gpt-6",
|
|
3703
|
+
includes: ["gpt-6"],
|
|
3704
|
+
variants: ["low", "medium", "high", "xhigh", "max"],
|
|
3705
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
3706
|
+
reasoningEffortAliases: { none: "low", minimal: "low" },
|
|
3707
|
+
supportsTemperature: false
|
|
3708
|
+
},
|
|
3691
3709
|
{
|
|
3692
3710
|
family: "gpt-5",
|
|
3693
3711
|
includes: ["gpt-5"],
|
|
@@ -3862,6 +3880,37 @@ var init_supplemental_entries = __esm(() => {
|
|
|
3862
3880
|
output: 262144
|
|
3863
3881
|
}
|
|
3864
3882
|
},
|
|
3883
|
+
"claude-fable-5-1": {
|
|
3884
|
+
id: "claude-fable-5-1",
|
|
3885
|
+
family: "claude-fable",
|
|
3886
|
+
reasoning: true,
|
|
3887
|
+
temperature: false,
|
|
3888
|
+
toolCall: true,
|
|
3889
|
+
modalities: {
|
|
3890
|
+
input: ["text", "image", "pdf"],
|
|
3891
|
+
output: ["text"]
|
|
3892
|
+
},
|
|
3893
|
+
limit: {
|
|
3894
|
+
context: 1e6,
|
|
3895
|
+
output: 128000
|
|
3896
|
+
}
|
|
3897
|
+
},
|
|
3898
|
+
"gpt-6-astra": {
|
|
3899
|
+
id: "gpt-6-astra",
|
|
3900
|
+
family: "gpt",
|
|
3901
|
+
reasoning: true,
|
|
3902
|
+
temperature: false,
|
|
3903
|
+
toolCall: true,
|
|
3904
|
+
modalities: {
|
|
3905
|
+
input: ["text", "image"],
|
|
3906
|
+
output: ["text"]
|
|
3907
|
+
},
|
|
3908
|
+
limit: {
|
|
3909
|
+
context: 1050000,
|
|
3910
|
+
input: 922000,
|
|
3911
|
+
output: 128000
|
|
3912
|
+
}
|
|
3913
|
+
},
|
|
3865
3914
|
"gpt-5.6-sol": {
|
|
3866
3915
|
id: "gpt-5.6-sol",
|
|
3867
3916
|
family: "gpt",
|
|
@@ -4202,7 +4251,7 @@ function getOverride(modelID) {
|
|
|
4202
4251
|
function getProviderOverride(providerID, modelID) {
|
|
4203
4252
|
if (providerID.trim().toLowerCase() !== "github-copilot")
|
|
4204
4253
|
return;
|
|
4205
|
-
return
|
|
4254
|
+
return GITHUB_COPILOT_GPT_MODEL.test(normalizeLookupModelID2(modelID)) ? GITHUB_COPILOT_GPT_OVERRIDE : undefined;
|
|
4206
4255
|
}
|
|
4207
4256
|
function stripSameProviderPrefix(providerID, modelID) {
|
|
4208
4257
|
const prefix = `${providerID.trim()}/`;
|
|
@@ -4341,14 +4390,14 @@ function getModelCapabilities(input) {
|
|
|
4341
4390
|
}
|
|
4342
4391
|
};
|
|
4343
4392
|
}
|
|
4344
|
-
var MODEL_ID_OVERRIDES,
|
|
4393
|
+
var MODEL_ID_OVERRIDES, GITHUB_COPILOT_GPT_MODEL, GITHUB_COPILOT_GPT_OVERRIDE;
|
|
4345
4394
|
var init_get_model_capabilities = __esm(() => {
|
|
4346
4395
|
init_model_capability_aliases();
|
|
4347
4396
|
init_model_capability_heuristics();
|
|
4348
4397
|
init_model_string_parser();
|
|
4349
4398
|
MODEL_ID_OVERRIDES = {};
|
|
4350
|
-
|
|
4351
|
-
|
|
4399
|
+
GITHUB_COPILOT_GPT_MODEL = /(?:^|\/)gpt-[56](?:[.-]|$)/;
|
|
4400
|
+
GITHUB_COPILOT_GPT_OVERRIDE = {
|
|
4352
4401
|
variants: ["low", "medium", "high"],
|
|
4353
4402
|
reasoningEfforts: ["none", "minimal", "low", "medium", "high"]
|
|
4354
4403
|
};
|
|
@@ -4606,22 +4655,6 @@ var init_agent_display_names = __esm(() => {
|
|
|
4606
4655
|
};
|
|
4607
4656
|
REVERSE_DISPLAY_NAMES = Object.fromEntries(Object.entries(AGENT_DISPLAY_NAMES).map(([key, displayName]) => [displayName.toLowerCase(), key]));
|
|
4608
4657
|
});
|
|
4609
|
-
// packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
|
|
4610
|
-
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4611
|
-
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
4612
|
-
</Category_Context>`, 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>`, ANTHROPIC_CATEGORIES;
|
|
4613
|
-
var init_anthropic_categories = __esm(() => {
|
|
4614
|
-
ANTHROPIC_CATEGORIES = [
|
|
4615
|
-
{
|
|
4616
|
-
name: "unspecified-high",
|
|
4617
|
-
config: { model: "anthropic/claude-opus-5", variant: "xhigh" },
|
|
4618
|
-
description: "Tasks that don't fit other categories, high effort required",
|
|
4619
|
-
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
4620
|
-
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
|
|
4621
|
-
}
|
|
4622
|
-
];
|
|
4623
|
-
});
|
|
4624
|
-
|
|
4625
4658
|
// packages/omo-opencode/src/tools/delegate-task/google-categories.ts
|
|
4626
4659
|
var VISUAL_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4627
4660
|
You are working on VISUAL/UI tasks.
|
|
@@ -4730,13 +4763,13 @@ var init_google_categories = __esm(() => {
|
|
|
4730
4763
|
GOOGLE_CATEGORIES = [
|
|
4731
4764
|
{
|
|
4732
4765
|
name: "visual-engineering",
|
|
4733
|
-
config: { model: "anthropic/claude-
|
|
4734
|
-
description: "
|
|
4766
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "max" },
|
|
4767
|
+
description: "Visual design, UI/UX, frontend, styling, animation, and design systems",
|
|
4735
4768
|
promptAppend: VISUAL_CATEGORY_PROMPT_APPEND
|
|
4736
4769
|
},
|
|
4737
4770
|
{
|
|
4738
4771
|
name: "artistry",
|
|
4739
|
-
config: { model: "anthropic/claude-fable-5", variant: "
|
|
4772
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "max" },
|
|
4740
4773
|
description: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
|
|
4741
4774
|
promptAppend: ARTISTRY_CATEGORY_PROMPT_APPEND
|
|
4742
4775
|
}
|
|
@@ -4773,7 +4806,7 @@ var init_kimi_categories = __esm(() => {
|
|
|
4773
4806
|
KIMI_CATEGORIES = [
|
|
4774
4807
|
{
|
|
4775
4808
|
name: "writing",
|
|
4776
|
-
config: { model: "
|
|
4809
|
+
config: { model: "anthropic/claude-fable-5-1", variant: "medium" },
|
|
4777
4810
|
description: "Documentation, prose, technical writing",
|
|
4778
4811
|
promptAppend: WRITING_CATEGORY_PROMPT_APPEND
|
|
4779
4812
|
}
|
|
@@ -4792,16 +4825,58 @@ function isGpt5_6Model(model) {
|
|
|
4792
4825
|
const modelName = extractModelName(model).toLowerCase();
|
|
4793
4826
|
return modelName.includes("gpt-5.6") || modelName.includes("gpt-5-6");
|
|
4794
4827
|
}
|
|
4828
|
+
function isGpt6Model(model) {
|
|
4829
|
+
const modelName = extractModelName(model).toLowerCase();
|
|
4830
|
+
return modelName.includes("gpt-6");
|
|
4831
|
+
}
|
|
4795
4832
|
var init_types = () => {};
|
|
4796
4833
|
|
|
4797
4834
|
// packages/omo-opencode/src/tools/delegate-task/openai-categories.ts
|
|
4835
|
+
function resolveUltrabrainCategoryPromptAppend(model) {
|
|
4836
|
+
if (model && isGpt6Model(model)) {
|
|
4837
|
+
return ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
4838
|
+
}
|
|
4839
|
+
return ULTRABRAIN_CATEGORY_PROMPT_APPEND;
|
|
4840
|
+
}
|
|
4798
4841
|
function resolveDeepCategoryPromptAppend(model) {
|
|
4842
|
+
if (model && isGpt6Model(model)) {
|
|
4843
|
+
return DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
4844
|
+
}
|
|
4799
4845
|
if (model && (isGpt5_5Model(model) || isGpt5_6Model(model))) {
|
|
4800
4846
|
return DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5;
|
|
4801
4847
|
}
|
|
4802
4848
|
return DEEP_CATEGORY_PROMPT_APPEND;
|
|
4803
4849
|
}
|
|
4804
|
-
|
|
4850
|
+
function resolveUnspecifiedHighCategoryPromptAppend(model) {
|
|
4851
|
+
if (model && isGpt6Model(model)) {
|
|
4852
|
+
return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
|
|
4853
|
+
}
|
|
4854
|
+
return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND;
|
|
4855
|
+
}
|
|
4856
|
+
var ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="ultrabrain">
|
|
4857
|
+
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.
|
|
4858
|
+
|
|
4859
|
+
Success means:
|
|
4860
|
+
- every load-bearing claim cites evidence from this turn: a file and line read, a command run, a test executed;
|
|
4861
|
+
- 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;
|
|
4862
|
+
- the conclusion survived your own attempt to break it, and the answer names the strongest counter-case you looked for;
|
|
4863
|
+
- rejected alternatives carry the reason that decided against them, and open assumptions are stated so the orchestrator can overturn them;
|
|
4864
|
+
- one decision-complete recommendation, actionable without a follow-up question.
|
|
4865
|
+
|
|
4866
|
+
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.
|
|
4867
|
+
</Category_Context>`, DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="deep">
|
|
4868
|
+
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.
|
|
4869
|
+
|
|
4870
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
4871
|
+
|
|
4872
|
+
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.
|
|
4873
|
+
|
|
4874
|
+
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.
|
|
4875
|
+
</Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="unspecified-high">
|
|
4876
|
+
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.
|
|
4877
|
+
|
|
4878
|
+
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.
|
|
4879
|
+
</Category_Context>`, ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4805
4880
|
You are working on DEEP LOGICAL REASONING / COMPLEX ARCHITECTURE tasks.
|
|
4806
4881
|
|
|
4807
4882
|
**CRITICAL - CODE STYLE REQUIREMENTS (NON-NEGOTIABLE)**:
|
|
@@ -4826,6 +4901,8 @@ You are working on GOAL-ORIENTED AUTONOMOUS tasks.
|
|
|
4826
4901
|
|
|
4827
4902
|
You are NOT an interactive assistant. You are an autonomous problem-solver.
|
|
4828
4903
|
|
|
4904
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
4905
|
+
|
|
4829
4906
|
BEFORE making ANY changes:
|
|
4830
4907
|
1. Silently explore the codebase extensively (5-15 minutes of reading is normal)
|
|
4831
4908
|
2. Read related files, trace dependencies, understand the full context
|
|
@@ -4843,6 +4920,8 @@ Minimal status updates. Focus on results, not play-by-play. Report completion wi
|
|
|
4843
4920
|
</Category_Context>`, DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5 = `<Category_Context name="deep">
|
|
4844
4921
|
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.
|
|
4845
4922
|
|
|
4923
|
+
**MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
|
|
4924
|
+
|
|
4846
4925
|
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.
|
|
4847
4926
|
|
|
4848
4927
|
# How deep mode adjusts the base behavior
|
|
@@ -4876,23 +4955,27 @@ Approach:
|
|
|
4876
4955
|
</Category_Context>`, QUICK_CATEGORY_CALLER_GUIDANCE = `<Caller_Warning>Small/fast model: before delegating, write an explicit prompt with numbered must-do steps, forbidden deviations, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4877
4956
|
You are working on tasks that don't fit specific categories but require moderate effort.
|
|
4878
4957
|
</Category_Context>`, 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>
|
|
4879
|
-
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`,
|
|
4958
|
+
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4959
|
+
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
4960
|
+
</Category_Context>`, 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>`, GPT_FLAGSHIP_GATE_MODELS, OPENAI_CATEGORIES;
|
|
4880
4961
|
var init_openai_categories = __esm(() => {
|
|
4881
4962
|
init_types();
|
|
4963
|
+
GPT_FLAGSHIP_GATE_MODELS = ["gpt-6-astra", "gpt-5.6-sol"];
|
|
4882
4964
|
OPENAI_CATEGORIES = [
|
|
4883
4965
|
{
|
|
4884
4966
|
name: "ultrabrain",
|
|
4885
|
-
config: { model: "openai/gpt-
|
|
4967
|
+
config: { model: "openai/gpt-6-astra", variant: "max" },
|
|
4886
4968
|
description: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
|
|
4887
|
-
promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND
|
|
4969
|
+
promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
|
|
4970
|
+
resolvePromptAppend: resolveUltrabrainCategoryPromptAppend
|
|
4888
4971
|
},
|
|
4889
4972
|
{
|
|
4890
4973
|
name: "deep",
|
|
4891
|
-
config: { model: "openai/gpt-
|
|
4892
|
-
description: "
|
|
4974
|
+
config: { model: "openai/gpt-6-astra", variant: "high" },
|
|
4975
|
+
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.",
|
|
4893
4976
|
promptAppend: DEEP_CATEGORY_PROMPT_APPEND,
|
|
4894
4977
|
resolvePromptAppend: resolveDeepCategoryPromptAppend,
|
|
4895
|
-
requiresModel:
|
|
4978
|
+
requiresModel: GPT_FLAGSHIP_GATE_MODELS
|
|
4896
4979
|
},
|
|
4897
4980
|
{
|
|
4898
4981
|
name: "quick",
|
|
@@ -4907,6 +4990,14 @@ var init_openai_categories = __esm(() => {
|
|
|
4907
4990
|
description: "Tasks that don't fit other categories, low effort required",
|
|
4908
4991
|
callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
4909
4992
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
4993
|
+
},
|
|
4994
|
+
{
|
|
4995
|
+
name: "unspecified-high",
|
|
4996
|
+
config: { model: "openai/gpt-6-astra", variant: "high" },
|
|
4997
|
+
description: "Tasks that don't fit other categories, high effort required",
|
|
4998
|
+
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
4999
|
+
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
|
|
5000
|
+
resolvePromptAppend: resolveUnspecifiedHighCategoryPromptAppend
|
|
4910
5001
|
}
|
|
4911
5002
|
];
|
|
4912
5003
|
});
|
|
@@ -4917,14 +5008,12 @@ function buildCategoryRecord(selector) {
|
|
|
4917
5008
|
}
|
|
4918
5009
|
var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
|
|
4919
5010
|
var init_builtin_categories = __esm(() => {
|
|
4920
|
-
init_anthropic_categories();
|
|
4921
5011
|
init_google_categories();
|
|
4922
5012
|
init_kimi_categories();
|
|
4923
5013
|
init_openai_categories();
|
|
4924
5014
|
BUILTIN_CATEGORIES = [
|
|
4925
5015
|
...GOOGLE_CATEGORIES,
|
|
4926
5016
|
...OPENAI_CATEGORIES,
|
|
4927
|
-
...ANTHROPIC_CATEGORIES,
|
|
4928
5017
|
...KIMI_CATEGORIES
|
|
4929
5018
|
];
|
|
4930
5019
|
DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
|
|
@@ -4932,7 +5021,10 @@ var init_builtin_categories = __esm(() => {
|
|
|
4932
5021
|
CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
|
|
4933
5022
|
CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
|
|
4934
5023
|
CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
|
|
4935
|
-
BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [
|
|
5024
|
+
BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [
|
|
5025
|
+
definition.name,
|
|
5026
|
+
typeof definition.requiresModel === "string" ? [definition.requiresModel] : definition.requiresModel
|
|
5027
|
+
]));
|
|
4936
5028
|
});
|
|
4937
5029
|
|
|
4938
5030
|
// packages/omo-opencode/src/tools/delegate-task/constants.ts
|
|
@@ -77762,7 +77854,6 @@ var init_memory = __esm(() => {
|
|
|
77762
77854
|
OmoMemorySettingsSchema = object({
|
|
77763
77855
|
enabled: boolean2().default(true),
|
|
77764
77856
|
agent: string2().min(1).default("auto"),
|
|
77765
|
-
tool_exposure: _enum2(["direct", "search"]).default("direct"),
|
|
77766
77857
|
reflection: OmoMemoryReflectionSchema.default({
|
|
77767
77858
|
enabled: true,
|
|
77768
77859
|
trigger: { step_count: 25, on_compaction: true },
|
|
@@ -77793,7 +77884,6 @@ var init_memory = __esm(() => {
|
|
|
77793
77884
|
OmoMemorySettingsLayerSchema = object({
|
|
77794
77885
|
enabled: boolean2().optional(),
|
|
77795
77886
|
agent: string2().min(1).optional(),
|
|
77796
|
-
tool_exposure: _enum2(["direct", "search"]).optional(),
|
|
77797
77887
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
77798
77888
|
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
77799
77889
|
facts: OmoMemoryFactsLayerSchema.optional(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.43",
|
|
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",
|
|
@@ -70,6 +70,8 @@
|
|
|
70
70
|
"packages/git-bash-mcp/dist",
|
|
71
71
|
"packages/shared-skills/package.json",
|
|
72
72
|
"packages/shared-skills/index.mjs",
|
|
73
|
+
"packages/shared-skills/skill-source-filter.d.ts",
|
|
74
|
+
"packages/shared-skills/skill-source-filter.mjs",
|
|
73
75
|
"packages/shared-skills/skills",
|
|
74
76
|
"packages/omo-codex/THIRD-PARTY-NOTICES.md",
|
|
75
77
|
"packages/omo-codex/marketplace.json",
|
|
@@ -122,6 +124,7 @@
|
|
|
122
124
|
"build:binaries": "bun run script/build-binaries.ts",
|
|
123
125
|
"build:schema": "bun run script/build-schema.ts",
|
|
124
126
|
"build:omo-native": "bun run script/build-omo-native.ts",
|
|
127
|
+
"omob": "bun run script/build-omob.ts",
|
|
125
128
|
"build:omo-schema": "bun run script/build-omo-schema.ts",
|
|
126
129
|
"build:model-capabilities": "bun run script/build-model-capabilities.ts",
|
|
127
130
|
"clean": "rm -rf dist",
|
|
@@ -129,14 +132,14 @@
|
|
|
129
132
|
"prepare": "bun run build",
|
|
130
133
|
"postinstall": "node postinstall.mjs",
|
|
131
134
|
"prepublishOnly": "bun run clean && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && bun run build",
|
|
132
|
-
"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",
|
|
135
|
+
"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",
|
|
133
136
|
"typecheck": "tsgo --noEmit && bun run typecheck:script && bun run typecheck:packages",
|
|
134
137
|
"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",
|
|
135
138
|
"typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
|
|
136
|
-
"test": "bun test",
|
|
137
|
-
"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",
|
|
139
|
+
"test": "bun test --timeout 20000",
|
|
140
|
+
"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",
|
|
138
141
|
"test:fast": "bun run script/test-fast.ts",
|
|
139
|
-
"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",
|
|
142
|
+
"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",
|
|
140
143
|
"test:windows-codex": "bun run test:codex",
|
|
141
144
|
"build:git-bash-mcp": "bun run --cwd packages/git-bash-mcp build",
|
|
142
145
|
"build:ast-grep-mcp": "bun run --cwd packages/ast-grep-mcp build"
|
|
@@ -180,7 +183,7 @@
|
|
|
180
183
|
"zod": "^4.4.3"
|
|
181
184
|
},
|
|
182
185
|
"devDependencies": {
|
|
183
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
186
|
+
"@code-yeongyu/senpi": "2026.9.5",
|
|
184
187
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
185
188
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
186
189
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -221,18 +224,18 @@
|
|
|
221
224
|
"typescript": "^7.0.2"
|
|
222
225
|
},
|
|
223
226
|
"optionalDependencies": {
|
|
224
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
225
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
226
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
227
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
228
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
229
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
230
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
231
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
232
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
233
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
234
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
235
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
227
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.43",
|
|
228
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.43",
|
|
229
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.43",
|
|
230
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.43",
|
|
231
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.43",
|
|
232
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.43",
|
|
233
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.43",
|
|
234
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.43",
|
|
235
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.43",
|
|
236
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.43",
|
|
237
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.43",
|
|
238
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.43"
|
|
236
239
|
},
|
|
237
240
|
"overrides": {
|
|
238
241
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -73,6 +73,7 @@ export class JsonRpcConnection {
|
|
|
73
73
|
let settled = false;
|
|
74
74
|
const writeCancel = (): Promise<void> => this.writeMessage({ jsonrpc: "2.0", method: "$/cancelRequest", params: { id } });
|
|
75
75
|
|
|
76
|
+
let rejectAfterCancelWrite: (() => Promise<void>) | undefined;
|
|
76
77
|
const responsePromise = new Promise<T>((resolve, reject) => {
|
|
77
78
|
const cleanup = (): void => {
|
|
78
79
|
options.signal?.removeEventListener("abort", onAbort);
|
|
@@ -83,15 +84,19 @@ export class JsonRpcConnection {
|
|
|
83
84
|
this.pendingRequests.delete(key);
|
|
84
85
|
cleanup();
|
|
85
86
|
const rejectCancelled = (): void => reject(abortError(options.signal));
|
|
87
|
+
rejectAfterCancelWrite = async (): Promise<void> => {
|
|
88
|
+
try {
|
|
89
|
+
await writeCancel();
|
|
90
|
+
} catch (error) {
|
|
91
|
+
this.emitError(toError(error));
|
|
92
|
+
}
|
|
93
|
+
rejectCancelled();
|
|
94
|
+
};
|
|
86
95
|
if (!requestWritten) {
|
|
87
96
|
cancelAfterWrite = true;
|
|
88
|
-
rejectCancelled();
|
|
89
97
|
return;
|
|
90
98
|
}
|
|
91
|
-
void
|
|
92
|
-
this.emitError(toError(error));
|
|
93
|
-
rejectCancelled();
|
|
94
|
-
});
|
|
99
|
+
void rejectAfterCancelWrite();
|
|
95
100
|
};
|
|
96
101
|
const onAbort = (): void => settleCancel();
|
|
97
102
|
this.pendingRequests.set(key, {
|
|
@@ -118,7 +123,7 @@ export class JsonRpcConnection {
|
|
|
118
123
|
try {
|
|
119
124
|
await this.writeMessage(message);
|
|
120
125
|
requestWritten = true;
|
|
121
|
-
if (cancelAfterWrite) await
|
|
126
|
+
if (cancelAfterWrite) await rejectAfterCancelWrite?.();
|
|
122
127
|
} catch (error) {
|
|
123
128
|
if (settled) return responsePromise;
|
|
124
129
|
const pending = this.pendingRequests.get(key);
|
|
@@ -686,6 +686,7 @@ class JsonRpcConnection {
|
|
|
686
686
|
let cancelAfterWrite = false;
|
|
687
687
|
let settled = false;
|
|
688
688
|
const writeCancel = () => this.writeMessage({ jsonrpc: "2.0", method: "$/cancelRequest", params: { id } });
|
|
689
|
+
let rejectAfterCancelWrite;
|
|
689
690
|
const responsePromise = new Promise((resolve2, reject) => {
|
|
690
691
|
const cleanup = () => {
|
|
691
692
|
options.signal?.removeEventListener("abort", onAbort);
|
|
@@ -697,15 +698,19 @@ class JsonRpcConnection {
|
|
|
697
698
|
this.pendingRequests.delete(key);
|
|
698
699
|
cleanup();
|
|
699
700
|
const rejectCancelled = () => reject(abortError(options.signal));
|
|
701
|
+
rejectAfterCancelWrite = async () => {
|
|
702
|
+
try {
|
|
703
|
+
await writeCancel();
|
|
704
|
+
} catch (error) {
|
|
705
|
+
this.emitError(toError(error));
|
|
706
|
+
}
|
|
707
|
+
rejectCancelled();
|
|
708
|
+
};
|
|
700
709
|
if (!requestWritten) {
|
|
701
710
|
cancelAfterWrite = true;
|
|
702
|
-
rejectCancelled();
|
|
703
711
|
return;
|
|
704
712
|
}
|
|
705
|
-
|
|
706
|
-
this.emitError(toError(error));
|
|
707
|
-
rejectCancelled();
|
|
708
|
-
});
|
|
713
|
+
rejectAfterCancelWrite();
|
|
709
714
|
};
|
|
710
715
|
const onAbort = () => settleCancel();
|
|
711
716
|
this.pendingRequests.set(key, {
|
|
@@ -733,7 +738,7 @@ class JsonRpcConnection {
|
|
|
733
738
|
await this.writeMessage(message);
|
|
734
739
|
requestWritten = true;
|
|
735
740
|
if (cancelAfterWrite)
|
|
736
|
-
await
|
|
741
|
+
await rejectAfterCancelWrite?.();
|
|
737
742
|
} catch (error) {
|
|
738
743
|
if (settled)
|
|
739
744
|
return responsePromise;
|
|
@@ -1341,6 +1341,7 @@ class JsonRpcConnection {
|
|
|
1341
1341
|
let cancelAfterWrite = false;
|
|
1342
1342
|
let settled = false;
|
|
1343
1343
|
const writeCancel = () => this.writeMessage({ jsonrpc: "2.0", method: "$/cancelRequest", params: { id } });
|
|
1344
|
+
let rejectAfterCancelWrite;
|
|
1344
1345
|
const responsePromise = new Promise((resolve2, reject) => {
|
|
1345
1346
|
const cleanup = () => {
|
|
1346
1347
|
options.signal?.removeEventListener("abort", onAbort);
|
|
@@ -1352,15 +1353,19 @@ class JsonRpcConnection {
|
|
|
1352
1353
|
this.pendingRequests.delete(key);
|
|
1353
1354
|
cleanup();
|
|
1354
1355
|
const rejectCancelled = () => reject(abortError2(options.signal));
|
|
1356
|
+
rejectAfterCancelWrite = async () => {
|
|
1357
|
+
try {
|
|
1358
|
+
await writeCancel();
|
|
1359
|
+
} catch (error) {
|
|
1360
|
+
this.emitError(toError(error));
|
|
1361
|
+
}
|
|
1362
|
+
rejectCancelled();
|
|
1363
|
+
};
|
|
1355
1364
|
if (!requestWritten) {
|
|
1356
1365
|
cancelAfterWrite = true;
|
|
1357
|
-
rejectCancelled();
|
|
1358
1366
|
return;
|
|
1359
1367
|
}
|
|
1360
|
-
|
|
1361
|
-
this.emitError(toError(error));
|
|
1362
|
-
rejectCancelled();
|
|
1363
|
-
});
|
|
1368
|
+
rejectAfterCancelWrite();
|
|
1364
1369
|
};
|
|
1365
1370
|
const onAbort = () => settleCancel();
|
|
1366
1371
|
this.pendingRequests.set(key, {
|
|
@@ -1388,7 +1393,7 @@ class JsonRpcConnection {
|
|
|
1388
1393
|
await this.writeMessage(message);
|
|
1389
1394
|
requestWritten = true;
|
|
1390
1395
|
if (cancelAfterWrite)
|
|
1391
|
-
await
|
|
1396
|
+
await rejectAfterCancelWrite?.();
|
|
1392
1397
|
} catch (error) {
|
|
1393
1398
|
if (settled)
|
|
1394
1399
|
return responsePromise;
|