oh-my-opencode 5.1.21 → 5.1.23
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/dist/cli/index.js +102 -89
- package/dist/cli-node/index.js +102 -89
- package/dist/index.js +129 -118
- package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
- package/dist/tui.js +87 -76
- package/package.json +14 -14
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +11 -0
- 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 +2 -2
- 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 +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +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/post-tool-use-recording-spawn-admission.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-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/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +13 -2
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -64,7 +64,7 @@ var package_default;
|
|
|
64
64
|
var init_package = __esm(() => {
|
|
65
65
|
package_default = {
|
|
66
66
|
name: "oh-my-opencode",
|
|
67
|
-
version: "5.1.
|
|
67
|
+
version: "5.1.23",
|
|
68
68
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
69
69
|
main: "./dist/index.js",
|
|
70
70
|
types: "dist/index.d.ts",
|
|
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
|
|
|
241
241
|
},
|
|
242
242
|
devDependencies: {
|
|
243
243
|
"@clack/prompts": "^1.8.1",
|
|
244
|
-
"@code-yeongyu/senpi": "2026.10.10-
|
|
244
|
+
"@code-yeongyu/senpi": "2026.10.10-6",
|
|
245
245
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
246
246
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
247
247
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -299,18 +299,18 @@ var init_package = __esm(() => {
|
|
|
299
299
|
typescript: "^7.0.2"
|
|
300
300
|
},
|
|
301
301
|
optionalDependencies: {
|
|
302
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
303
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
304
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
305
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
306
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
307
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
308
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
309
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
310
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
311
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
312
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
313
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
302
|
+
"oh-my-opencode-darwin-arm64": "5.1.23",
|
|
303
|
+
"oh-my-opencode-darwin-x64": "5.1.23",
|
|
304
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.23",
|
|
305
|
+
"oh-my-opencode-linux-arm64": "5.1.23",
|
|
306
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.23",
|
|
307
|
+
"oh-my-opencode-linux-x64": "5.1.23",
|
|
308
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.23",
|
|
309
|
+
"oh-my-opencode-linux-x64-musl": "5.1.23",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.23",
|
|
311
|
+
"oh-my-opencode-windows-arm64": "5.1.23",
|
|
312
|
+
"oh-my-opencode-windows-x64": "5.1.23",
|
|
313
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.23"
|
|
314
314
|
},
|
|
315
315
|
overrides: {
|
|
316
316
|
hono: "^4.13.8",
|
|
@@ -7518,6 +7518,79 @@ var init_model_requirements = __esm(() => {
|
|
|
7518
7518
|
init_category_model_requirements();
|
|
7519
7519
|
});
|
|
7520
7520
|
|
|
7521
|
+
// packages/model-core/src/reasoning-level.ts
|
|
7522
|
+
function isReasoningLevelOrAuto(value) {
|
|
7523
|
+
return REASONING_LEVEL_OR_AUTO_SET.has(value);
|
|
7524
|
+
}
|
|
7525
|
+
function clampReasoningLevel(value, allowed) {
|
|
7526
|
+
const ladder = REASONING_LEVELS;
|
|
7527
|
+
const requestedIndex = ladder.indexOf(value);
|
|
7528
|
+
if (requestedIndex === -1)
|
|
7529
|
+
return;
|
|
7530
|
+
for (let index = requestedIndex;index >= 0; index -= 1) {
|
|
7531
|
+
const candidate = REASONING_LEVELS[index];
|
|
7532
|
+
if (candidate !== undefined && allowed.includes(candidate))
|
|
7533
|
+
return candidate;
|
|
7534
|
+
}
|
|
7535
|
+
return;
|
|
7536
|
+
}
|
|
7537
|
+
function splitReasoningSuffix(model, options) {
|
|
7538
|
+
if (typeof model !== "string")
|
|
7539
|
+
return { base: "" };
|
|
7540
|
+
const trimmed = model.trim();
|
|
7541
|
+
if (!trimmed)
|
|
7542
|
+
return { base: "" };
|
|
7543
|
+
const separatorIndex = trimmed.lastIndexOf(":");
|
|
7544
|
+
if (separatorIndex === -1)
|
|
7545
|
+
return { base: trimmed };
|
|
7546
|
+
const base = trimmed.slice(0, separatorIndex).trim();
|
|
7547
|
+
const token = trimmed.slice(separatorIndex + 1).trim().toLowerCase();
|
|
7548
|
+
if (!base || !isReasoningLevelOrAuto(token))
|
|
7549
|
+
return { base: trimmed };
|
|
7550
|
+
if (token === "max" && !(options?.allowMaxSuffix ?? base.includes("/")))
|
|
7551
|
+
return { base: trimmed };
|
|
7552
|
+
return { base, level: token };
|
|
7553
|
+
}
|
|
7554
|
+
var REASONING_LEVELS, REASONING_AUTO = "auto", REASONING_LEVEL_SET, REASONING_LEVEL_OR_AUTO_SET;
|
|
7555
|
+
var init_reasoning_level = __esm(() => {
|
|
7556
|
+
REASONING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
7557
|
+
REASONING_LEVEL_SET = new Set(REASONING_LEVELS);
|
|
7558
|
+
REASONING_LEVEL_OR_AUTO_SET = new Set([...REASONING_LEVELS, REASONING_AUTO]);
|
|
7559
|
+
});
|
|
7560
|
+
|
|
7561
|
+
// packages/model-core/src/model-string-parser.ts
|
|
7562
|
+
function parseVariantFromModelID(rawModelID, options) {
|
|
7563
|
+
if (typeof rawModelID !== "string") {
|
|
7564
|
+
return { modelID: "" };
|
|
7565
|
+
}
|
|
7566
|
+
const trimmedModelID = rawModelID.trim();
|
|
7567
|
+
if (!trimmedModelID) {
|
|
7568
|
+
return { modelID: "" };
|
|
7569
|
+
}
|
|
7570
|
+
const parenthesizedVariant = trimmedModelID.match(/^(.*)\(([^()]+)\)\s*$/);
|
|
7571
|
+
if (parenthesizedVariant) {
|
|
7572
|
+
const modelID = parenthesizedVariant[1]?.trim() ?? "";
|
|
7573
|
+
const variant = parenthesizedVariant[2]?.trim();
|
|
7574
|
+
return variant ? { modelID, variant } : { modelID };
|
|
7575
|
+
}
|
|
7576
|
+
const suffixedModel = splitReasoningSuffix(trimmedModelID, options);
|
|
7577
|
+
if (suffixedModel.level) {
|
|
7578
|
+
return { modelID: suffixedModel.base, variant: suffixedModel.level };
|
|
7579
|
+
}
|
|
7580
|
+
const spaceVariant = trimmedModelID.match(/^(.*\S)\s+([a-z][a-z0-9_-]*)$/i);
|
|
7581
|
+
if (spaceVariant) {
|
|
7582
|
+
const modelID = spaceVariant[1]?.trim() ?? "";
|
|
7583
|
+
const variant = spaceVariant[2]?.trim().toLowerCase();
|
|
7584
|
+
if (variant) {
|
|
7585
|
+
return { modelID, variant };
|
|
7586
|
+
}
|
|
7587
|
+
}
|
|
7588
|
+
return { modelID: trimmedModelID };
|
|
7589
|
+
}
|
|
7590
|
+
var init_model_string_parser = __esm(() => {
|
|
7591
|
+
init_reasoning_level();
|
|
7592
|
+
});
|
|
7593
|
+
|
|
7521
7594
|
// packages/model-core/src/model-family-detectors.ts
|
|
7522
7595
|
function extractModelName(model) {
|
|
7523
7596
|
return model.includes("/") ? model.split("/").pop() ?? model : model;
|
|
@@ -7636,79 +7709,6 @@ function normalizeModelID(modelID) {
|
|
|
7636
7709
|
return modelID.replace(/\.(\d+)/g, "-$1");
|
|
7637
7710
|
}
|
|
7638
7711
|
|
|
7639
|
-
// packages/model-core/src/reasoning-level.ts
|
|
7640
|
-
function isReasoningLevelOrAuto(value) {
|
|
7641
|
-
return REASONING_LEVEL_OR_AUTO_SET.has(value);
|
|
7642
|
-
}
|
|
7643
|
-
function clampReasoningLevel(value, allowed) {
|
|
7644
|
-
const ladder = REASONING_LEVELS;
|
|
7645
|
-
const requestedIndex = ladder.indexOf(value);
|
|
7646
|
-
if (requestedIndex === -1)
|
|
7647
|
-
return;
|
|
7648
|
-
for (let index = requestedIndex;index >= 0; index -= 1) {
|
|
7649
|
-
const candidate = REASONING_LEVELS[index];
|
|
7650
|
-
if (candidate !== undefined && allowed.includes(candidate))
|
|
7651
|
-
return candidate;
|
|
7652
|
-
}
|
|
7653
|
-
return;
|
|
7654
|
-
}
|
|
7655
|
-
function splitReasoningSuffix(model, options) {
|
|
7656
|
-
if (typeof model !== "string")
|
|
7657
|
-
return { base: "" };
|
|
7658
|
-
const trimmed = model.trim();
|
|
7659
|
-
if (!trimmed)
|
|
7660
|
-
return { base: "" };
|
|
7661
|
-
const separatorIndex = trimmed.lastIndexOf(":");
|
|
7662
|
-
if (separatorIndex === -1)
|
|
7663
|
-
return { base: trimmed };
|
|
7664
|
-
const base = trimmed.slice(0, separatorIndex).trim();
|
|
7665
|
-
const token = trimmed.slice(separatorIndex + 1).trim().toLowerCase();
|
|
7666
|
-
if (!base || !isReasoningLevelOrAuto(token))
|
|
7667
|
-
return { base: trimmed };
|
|
7668
|
-
if (token === "max" && !(options?.allowMaxSuffix ?? base.includes("/")))
|
|
7669
|
-
return { base: trimmed };
|
|
7670
|
-
return { base, level: token };
|
|
7671
|
-
}
|
|
7672
|
-
var REASONING_LEVELS, REASONING_AUTO = "auto", REASONING_LEVEL_SET, REASONING_LEVEL_OR_AUTO_SET;
|
|
7673
|
-
var init_reasoning_level = __esm(() => {
|
|
7674
|
-
REASONING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
7675
|
-
REASONING_LEVEL_SET = new Set(REASONING_LEVELS);
|
|
7676
|
-
REASONING_LEVEL_OR_AUTO_SET = new Set([...REASONING_LEVELS, REASONING_AUTO]);
|
|
7677
|
-
});
|
|
7678
|
-
|
|
7679
|
-
// packages/model-core/src/model-string-parser.ts
|
|
7680
|
-
function parseVariantFromModelID(rawModelID, options) {
|
|
7681
|
-
if (typeof rawModelID !== "string") {
|
|
7682
|
-
return { modelID: "" };
|
|
7683
|
-
}
|
|
7684
|
-
const trimmedModelID = rawModelID.trim();
|
|
7685
|
-
if (!trimmedModelID) {
|
|
7686
|
-
return { modelID: "" };
|
|
7687
|
-
}
|
|
7688
|
-
const parenthesizedVariant = trimmedModelID.match(/^(.*)\(([^()]+)\)\s*$/);
|
|
7689
|
-
if (parenthesizedVariant) {
|
|
7690
|
-
const modelID = parenthesizedVariant[1]?.trim() ?? "";
|
|
7691
|
-
const variant = parenthesizedVariant[2]?.trim();
|
|
7692
|
-
return variant ? { modelID, variant } : { modelID };
|
|
7693
|
-
}
|
|
7694
|
-
const suffixedModel = splitReasoningSuffix(trimmedModelID, options);
|
|
7695
|
-
if (suffixedModel.level) {
|
|
7696
|
-
return { modelID: suffixedModel.base, variant: suffixedModel.level };
|
|
7697
|
-
}
|
|
7698
|
-
const spaceVariant = trimmedModelID.match(/^(.*\S)\s+([a-z][a-z0-9_-]*)$/i);
|
|
7699
|
-
if (spaceVariant) {
|
|
7700
|
-
const modelID = spaceVariant[1]?.trim() ?? "";
|
|
7701
|
-
const variant = spaceVariant[2]?.trim().toLowerCase();
|
|
7702
|
-
if (variant) {
|
|
7703
|
-
return { modelID, variant };
|
|
7704
|
-
}
|
|
7705
|
-
}
|
|
7706
|
-
return { modelID: trimmedModelID };
|
|
7707
|
-
}
|
|
7708
|
-
var init_model_string_parser = __esm(() => {
|
|
7709
|
-
init_reasoning_level();
|
|
7710
|
-
});
|
|
7711
|
-
|
|
7712
7712
|
// packages/model-core/src/model-capability-heuristics.ts
|
|
7713
7713
|
function detectHeuristicModelFamily(modelID) {
|
|
7714
7714
|
const parsedModel = parseVariantFromModelID(modelID, { allowMaxSuffix: true });
|
|
@@ -74552,7 +74552,7 @@ var init_harness = __esm(() => {
|
|
|
74552
74552
|
});
|
|
74553
74553
|
|
|
74554
74554
|
// packages/omo-config-core/src/schema/memory.ts
|
|
74555
|
-
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
74555
|
+
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
74556
74556
|
var init_memory = __esm(() => {
|
|
74557
74557
|
init_zod();
|
|
74558
74558
|
OmoMemoryReflectionTriggerSchema = object({
|
|
@@ -74679,6 +74679,14 @@ var init_memory = __esm(() => {
|
|
|
74679
74679
|
OmoMemoryWriteNoticeLayerSchema = object({
|
|
74680
74680
|
enabled: boolean2().optional()
|
|
74681
74681
|
}).strict();
|
|
74682
|
+
OmoMemoryProjectionSchema = object({
|
|
74683
|
+
max_entries_per_directory: number2().int().min(0).default(40),
|
|
74684
|
+
max_bytes: number2().int().min(0).default(24576)
|
|
74685
|
+
}).strict();
|
|
74686
|
+
OmoMemoryProjectionLayerSchema = object({
|
|
74687
|
+
max_entries_per_directory: number2().int().min(0).optional(),
|
|
74688
|
+
max_bytes: number2().int().min(0).optional()
|
|
74689
|
+
}).strict();
|
|
74682
74690
|
OmoMemoryAgentOverridesSchema = object({
|
|
74683
74691
|
enabled: boolean2().optional(),
|
|
74684
74692
|
agent: string2().min(1).optional(),
|
|
@@ -74692,6 +74700,7 @@ var init_memory = __esm(() => {
|
|
|
74692
74700
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
74693
74701
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
74694
74702
|
recall: OmoMemoryRecallLayerSchema.optional(),
|
|
74703
|
+
projection: OmoMemoryProjectionLayerSchema.optional(),
|
|
74695
74704
|
compile_warn_tokens: number2().int().positive().optional()
|
|
74696
74705
|
}).strict();
|
|
74697
74706
|
OmoMemorySettingsSchema = object({
|
|
@@ -74730,6 +74739,7 @@ var init_memory = __esm(() => {
|
|
|
74730
74739
|
tool_budget: 8,
|
|
74731
74740
|
query_expansion: false
|
|
74732
74741
|
}),
|
|
74742
|
+
projection: OmoMemoryProjectionSchema.default({ max_entries_per_directory: 40, max_bytes: 24576 }),
|
|
74733
74743
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
74734
74744
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
|
|
74735
74745
|
}).strict();
|
|
@@ -74746,6 +74756,7 @@ var init_memory = __esm(() => {
|
|
|
74746
74756
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
74747
74757
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
74748
74758
|
recall: OmoMemoryRecallLayerSchema.optional(),
|
|
74759
|
+
projection: OmoMemoryProjectionLayerSchema.optional(),
|
|
74749
74760
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
74750
74761
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
|
|
74751
74762
|
}).strict();
|
|
@@ -89369,7 +89380,7 @@ var package_default2;
|
|
|
89369
89380
|
var init_package2 = __esm(() => {
|
|
89370
89381
|
package_default2 = {
|
|
89371
89382
|
name: "@oh-my-opencode/omo-codex",
|
|
89372
|
-
version: "5.1.
|
|
89383
|
+
version: "5.1.23",
|
|
89373
89384
|
type: "module",
|
|
89374
89385
|
private: true,
|
|
89375
89386
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -98715,6 +98726,8 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98715
98726
|
...PERSONA_ASSET_FILES.map((filename) => join63("extensions", filename)),
|
|
98716
98727
|
join63("skills", "ast-grep", "SKILL.md"),
|
|
98717
98728
|
join63("skills", "browser", "SKILL.md"),
|
|
98729
|
+
join63("skills", "browser", "runtime", "omowright", "index.js"),
|
|
98730
|
+
join63("skills", "browser", "runtime", "omowright", "page-bundle.js"),
|
|
98718
98731
|
join63("skills", "coding-agent-sessions", "SKILL.md"),
|
|
98719
98732
|
join63("skills", "debugging", "SKILL.md"),
|
|
98720
98733
|
join63("skills", "frontend", "SKILL.md"),
|
package/dist/cli-node/index.js
CHANGED
|
@@ -65,7 +65,7 @@ var package_default;
|
|
|
65
65
|
var init_package = __esm(() => {
|
|
66
66
|
package_default = {
|
|
67
67
|
name: "oh-my-opencode",
|
|
68
|
-
version: "5.1.
|
|
68
|
+
version: "5.1.23",
|
|
69
69
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
70
70
|
main: "./dist/index.js",
|
|
71
71
|
types: "dist/index.d.ts",
|
|
@@ -242,7 +242,7 @@ var init_package = __esm(() => {
|
|
|
242
242
|
},
|
|
243
243
|
devDependencies: {
|
|
244
244
|
"@clack/prompts": "^1.8.1",
|
|
245
|
-
"@code-yeongyu/senpi": "2026.10.10-
|
|
245
|
+
"@code-yeongyu/senpi": "2026.10.10-6",
|
|
246
246
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
247
247
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
248
248
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -300,18 +300,18 @@ var init_package = __esm(() => {
|
|
|
300
300
|
typescript: "^7.0.2"
|
|
301
301
|
},
|
|
302
302
|
optionalDependencies: {
|
|
303
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
304
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
305
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
306
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
307
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
308
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
309
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
310
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
311
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
312
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
313
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
314
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
303
|
+
"oh-my-opencode-darwin-arm64": "5.1.23",
|
|
304
|
+
"oh-my-opencode-darwin-x64": "5.1.23",
|
|
305
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.23",
|
|
306
|
+
"oh-my-opencode-linux-arm64": "5.1.23",
|
|
307
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.23",
|
|
308
|
+
"oh-my-opencode-linux-x64": "5.1.23",
|
|
309
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.23",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl": "5.1.23",
|
|
311
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.23",
|
|
312
|
+
"oh-my-opencode-windows-arm64": "5.1.23",
|
|
313
|
+
"oh-my-opencode-windows-x64": "5.1.23",
|
|
314
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.23"
|
|
315
315
|
},
|
|
316
316
|
overrides: {
|
|
317
317
|
hono: "^4.13.8",
|
|
@@ -7519,6 +7519,79 @@ var init_model_requirements = __esm(() => {
|
|
|
7519
7519
|
init_category_model_requirements();
|
|
7520
7520
|
});
|
|
7521
7521
|
|
|
7522
|
+
// packages/model-core/src/reasoning-level.ts
|
|
7523
|
+
function isReasoningLevelOrAuto(value) {
|
|
7524
|
+
return REASONING_LEVEL_OR_AUTO_SET.has(value);
|
|
7525
|
+
}
|
|
7526
|
+
function clampReasoningLevel(value, allowed) {
|
|
7527
|
+
const ladder = REASONING_LEVELS;
|
|
7528
|
+
const requestedIndex = ladder.indexOf(value);
|
|
7529
|
+
if (requestedIndex === -1)
|
|
7530
|
+
return;
|
|
7531
|
+
for (let index = requestedIndex;index >= 0; index -= 1) {
|
|
7532
|
+
const candidate = REASONING_LEVELS[index];
|
|
7533
|
+
if (candidate !== undefined && allowed.includes(candidate))
|
|
7534
|
+
return candidate;
|
|
7535
|
+
}
|
|
7536
|
+
return;
|
|
7537
|
+
}
|
|
7538
|
+
function splitReasoningSuffix(model, options) {
|
|
7539
|
+
if (typeof model !== "string")
|
|
7540
|
+
return { base: "" };
|
|
7541
|
+
const trimmed = model.trim();
|
|
7542
|
+
if (!trimmed)
|
|
7543
|
+
return { base: "" };
|
|
7544
|
+
const separatorIndex = trimmed.lastIndexOf(":");
|
|
7545
|
+
if (separatorIndex === -1)
|
|
7546
|
+
return { base: trimmed };
|
|
7547
|
+
const base = trimmed.slice(0, separatorIndex).trim();
|
|
7548
|
+
const token = trimmed.slice(separatorIndex + 1).trim().toLowerCase();
|
|
7549
|
+
if (!base || !isReasoningLevelOrAuto(token))
|
|
7550
|
+
return { base: trimmed };
|
|
7551
|
+
if (token === "max" && !(options?.allowMaxSuffix ?? base.includes("/")))
|
|
7552
|
+
return { base: trimmed };
|
|
7553
|
+
return { base, level: token };
|
|
7554
|
+
}
|
|
7555
|
+
var REASONING_LEVELS, REASONING_AUTO = "auto", REASONING_LEVEL_SET, REASONING_LEVEL_OR_AUTO_SET;
|
|
7556
|
+
var init_reasoning_level = __esm(() => {
|
|
7557
|
+
REASONING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
7558
|
+
REASONING_LEVEL_SET = new Set(REASONING_LEVELS);
|
|
7559
|
+
REASONING_LEVEL_OR_AUTO_SET = new Set([...REASONING_LEVELS, REASONING_AUTO]);
|
|
7560
|
+
});
|
|
7561
|
+
|
|
7562
|
+
// packages/model-core/src/model-string-parser.ts
|
|
7563
|
+
function parseVariantFromModelID(rawModelID, options) {
|
|
7564
|
+
if (typeof rawModelID !== "string") {
|
|
7565
|
+
return { modelID: "" };
|
|
7566
|
+
}
|
|
7567
|
+
const trimmedModelID = rawModelID.trim();
|
|
7568
|
+
if (!trimmedModelID) {
|
|
7569
|
+
return { modelID: "" };
|
|
7570
|
+
}
|
|
7571
|
+
const parenthesizedVariant = trimmedModelID.match(/^(.*)\(([^()]+)\)\s*$/);
|
|
7572
|
+
if (parenthesizedVariant) {
|
|
7573
|
+
const modelID = parenthesizedVariant[1]?.trim() ?? "";
|
|
7574
|
+
const variant = parenthesizedVariant[2]?.trim();
|
|
7575
|
+
return variant ? { modelID, variant } : { modelID };
|
|
7576
|
+
}
|
|
7577
|
+
const suffixedModel = splitReasoningSuffix(trimmedModelID, options);
|
|
7578
|
+
if (suffixedModel.level) {
|
|
7579
|
+
return { modelID: suffixedModel.base, variant: suffixedModel.level };
|
|
7580
|
+
}
|
|
7581
|
+
const spaceVariant = trimmedModelID.match(/^(.*\S)\s+([a-z][a-z0-9_-]*)$/i);
|
|
7582
|
+
if (spaceVariant) {
|
|
7583
|
+
const modelID = spaceVariant[1]?.trim() ?? "";
|
|
7584
|
+
const variant = spaceVariant[2]?.trim().toLowerCase();
|
|
7585
|
+
if (variant) {
|
|
7586
|
+
return { modelID, variant };
|
|
7587
|
+
}
|
|
7588
|
+
}
|
|
7589
|
+
return { modelID: trimmedModelID };
|
|
7590
|
+
}
|
|
7591
|
+
var init_model_string_parser = __esm(() => {
|
|
7592
|
+
init_reasoning_level();
|
|
7593
|
+
});
|
|
7594
|
+
|
|
7522
7595
|
// packages/model-core/src/model-family-detectors.ts
|
|
7523
7596
|
function extractModelName(model) {
|
|
7524
7597
|
return model.includes("/") ? model.split("/").pop() ?? model : model;
|
|
@@ -7637,79 +7710,6 @@ function normalizeModelID(modelID) {
|
|
|
7637
7710
|
return modelID.replace(/\.(\d+)/g, "-$1");
|
|
7638
7711
|
}
|
|
7639
7712
|
|
|
7640
|
-
// packages/model-core/src/reasoning-level.ts
|
|
7641
|
-
function isReasoningLevelOrAuto(value) {
|
|
7642
|
-
return REASONING_LEVEL_OR_AUTO_SET.has(value);
|
|
7643
|
-
}
|
|
7644
|
-
function clampReasoningLevel(value, allowed) {
|
|
7645
|
-
const ladder = REASONING_LEVELS;
|
|
7646
|
-
const requestedIndex = ladder.indexOf(value);
|
|
7647
|
-
if (requestedIndex === -1)
|
|
7648
|
-
return;
|
|
7649
|
-
for (let index = requestedIndex;index >= 0; index -= 1) {
|
|
7650
|
-
const candidate = REASONING_LEVELS[index];
|
|
7651
|
-
if (candidate !== undefined && allowed.includes(candidate))
|
|
7652
|
-
return candidate;
|
|
7653
|
-
}
|
|
7654
|
-
return;
|
|
7655
|
-
}
|
|
7656
|
-
function splitReasoningSuffix(model, options) {
|
|
7657
|
-
if (typeof model !== "string")
|
|
7658
|
-
return { base: "" };
|
|
7659
|
-
const trimmed = model.trim();
|
|
7660
|
-
if (!trimmed)
|
|
7661
|
-
return { base: "" };
|
|
7662
|
-
const separatorIndex = trimmed.lastIndexOf(":");
|
|
7663
|
-
if (separatorIndex === -1)
|
|
7664
|
-
return { base: trimmed };
|
|
7665
|
-
const base = trimmed.slice(0, separatorIndex).trim();
|
|
7666
|
-
const token = trimmed.slice(separatorIndex + 1).trim().toLowerCase();
|
|
7667
|
-
if (!base || !isReasoningLevelOrAuto(token))
|
|
7668
|
-
return { base: trimmed };
|
|
7669
|
-
if (token === "max" && !(options?.allowMaxSuffix ?? base.includes("/")))
|
|
7670
|
-
return { base: trimmed };
|
|
7671
|
-
return { base, level: token };
|
|
7672
|
-
}
|
|
7673
|
-
var REASONING_LEVELS, REASONING_AUTO = "auto", REASONING_LEVEL_SET, REASONING_LEVEL_OR_AUTO_SET;
|
|
7674
|
-
var init_reasoning_level = __esm(() => {
|
|
7675
|
-
REASONING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
7676
|
-
REASONING_LEVEL_SET = new Set(REASONING_LEVELS);
|
|
7677
|
-
REASONING_LEVEL_OR_AUTO_SET = new Set([...REASONING_LEVELS, REASONING_AUTO]);
|
|
7678
|
-
});
|
|
7679
|
-
|
|
7680
|
-
// packages/model-core/src/model-string-parser.ts
|
|
7681
|
-
function parseVariantFromModelID(rawModelID, options) {
|
|
7682
|
-
if (typeof rawModelID !== "string") {
|
|
7683
|
-
return { modelID: "" };
|
|
7684
|
-
}
|
|
7685
|
-
const trimmedModelID = rawModelID.trim();
|
|
7686
|
-
if (!trimmedModelID) {
|
|
7687
|
-
return { modelID: "" };
|
|
7688
|
-
}
|
|
7689
|
-
const parenthesizedVariant = trimmedModelID.match(/^(.*)\(([^()]+)\)\s*$/);
|
|
7690
|
-
if (parenthesizedVariant) {
|
|
7691
|
-
const modelID = parenthesizedVariant[1]?.trim() ?? "";
|
|
7692
|
-
const variant = parenthesizedVariant[2]?.trim();
|
|
7693
|
-
return variant ? { modelID, variant } : { modelID };
|
|
7694
|
-
}
|
|
7695
|
-
const suffixedModel = splitReasoningSuffix(trimmedModelID, options);
|
|
7696
|
-
if (suffixedModel.level) {
|
|
7697
|
-
return { modelID: suffixedModel.base, variant: suffixedModel.level };
|
|
7698
|
-
}
|
|
7699
|
-
const spaceVariant = trimmedModelID.match(/^(.*\S)\s+([a-z][a-z0-9_-]*)$/i);
|
|
7700
|
-
if (spaceVariant) {
|
|
7701
|
-
const modelID = spaceVariant[1]?.trim() ?? "";
|
|
7702
|
-
const variant = spaceVariant[2]?.trim().toLowerCase();
|
|
7703
|
-
if (variant) {
|
|
7704
|
-
return { modelID, variant };
|
|
7705
|
-
}
|
|
7706
|
-
}
|
|
7707
|
-
return { modelID: trimmedModelID };
|
|
7708
|
-
}
|
|
7709
|
-
var init_model_string_parser = __esm(() => {
|
|
7710
|
-
init_reasoning_level();
|
|
7711
|
-
});
|
|
7712
|
-
|
|
7713
7713
|
// packages/model-core/src/model-capability-heuristics.ts
|
|
7714
7714
|
function detectHeuristicModelFamily(modelID) {
|
|
7715
7715
|
const parsedModel = parseVariantFromModelID(modelID, { allowMaxSuffix: true });
|
|
@@ -74631,7 +74631,7 @@ var init_harness = __esm(() => {
|
|
|
74631
74631
|
});
|
|
74632
74632
|
|
|
74633
74633
|
// packages/omo-config-core/src/schema/memory.ts
|
|
74634
|
-
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
74634
|
+
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
74635
74635
|
var init_memory = __esm(() => {
|
|
74636
74636
|
init_zod();
|
|
74637
74637
|
OmoMemoryReflectionTriggerSchema = object({
|
|
@@ -74758,6 +74758,14 @@ var init_memory = __esm(() => {
|
|
|
74758
74758
|
OmoMemoryWriteNoticeLayerSchema = object({
|
|
74759
74759
|
enabled: boolean2().optional()
|
|
74760
74760
|
}).strict();
|
|
74761
|
+
OmoMemoryProjectionSchema = object({
|
|
74762
|
+
max_entries_per_directory: number2().int().min(0).default(40),
|
|
74763
|
+
max_bytes: number2().int().min(0).default(24576)
|
|
74764
|
+
}).strict();
|
|
74765
|
+
OmoMemoryProjectionLayerSchema = object({
|
|
74766
|
+
max_entries_per_directory: number2().int().min(0).optional(),
|
|
74767
|
+
max_bytes: number2().int().min(0).optional()
|
|
74768
|
+
}).strict();
|
|
74761
74769
|
OmoMemoryAgentOverridesSchema = object({
|
|
74762
74770
|
enabled: boolean2().optional(),
|
|
74763
74771
|
agent: string2().min(1).optional(),
|
|
@@ -74771,6 +74779,7 @@ var init_memory = __esm(() => {
|
|
|
74771
74779
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
74772
74780
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
74773
74781
|
recall: OmoMemoryRecallLayerSchema.optional(),
|
|
74782
|
+
projection: OmoMemoryProjectionLayerSchema.optional(),
|
|
74774
74783
|
compile_warn_tokens: number2().int().positive().optional()
|
|
74775
74784
|
}).strict();
|
|
74776
74785
|
OmoMemorySettingsSchema = object({
|
|
@@ -74809,6 +74818,7 @@ var init_memory = __esm(() => {
|
|
|
74809
74818
|
tool_budget: 8,
|
|
74810
74819
|
query_expansion: false
|
|
74811
74820
|
}),
|
|
74821
|
+
projection: OmoMemoryProjectionSchema.default({ max_entries_per_directory: 40, max_bytes: 24576 }),
|
|
74812
74822
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
74813
74823
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
|
|
74814
74824
|
}).strict();
|
|
@@ -74825,6 +74835,7 @@ var init_memory = __esm(() => {
|
|
|
74825
74835
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
74826
74836
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
74827
74837
|
recall: OmoMemoryRecallLayerSchema.optional(),
|
|
74838
|
+
projection: OmoMemoryProjectionLayerSchema.optional(),
|
|
74828
74839
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
74829
74840
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
|
|
74830
74841
|
}).strict();
|
|
@@ -89448,7 +89459,7 @@ var package_default2;
|
|
|
89448
89459
|
var init_package2 = __esm(() => {
|
|
89449
89460
|
package_default2 = {
|
|
89450
89461
|
name: "@oh-my-opencode/omo-codex",
|
|
89451
|
-
version: "5.1.
|
|
89462
|
+
version: "5.1.23",
|
|
89452
89463
|
type: "module",
|
|
89453
89464
|
private: true,
|
|
89454
89465
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -98794,6 +98805,8 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98794
98805
|
...PERSONA_ASSET_FILES.map((filename) => join63("extensions", filename)),
|
|
98795
98806
|
join63("skills", "ast-grep", "SKILL.md"),
|
|
98796
98807
|
join63("skills", "browser", "SKILL.md"),
|
|
98808
|
+
join63("skills", "browser", "runtime", "omowright", "index.js"),
|
|
98809
|
+
join63("skills", "browser", "runtime", "omowright", "page-bundle.js"),
|
|
98797
98810
|
join63("skills", "coding-agent-sessions", "SKILL.md"),
|
|
98798
98811
|
join63("skills", "debugging", "SKILL.md"),
|
|
98799
98812
|
join63("skills", "frontend", "SKILL.md"),
|