oh-my-opencode 5.0.0-beta.10 → 5.0.0-beta.12
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 +34 -86
- package/dist/cli-node/index.js +34 -86
- package/dist/index.js +80 -93
- package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
- package/dist/tools/delegate-task/tool-description.d.ts +3 -1
- package/dist/tui.js +19 -71
- package/package.json +14 -14
- package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
- package/packages/lsp-core/src/lsp/client-wrapper.test.ts +6 -6
- package/packages/lsp-core/src/lsp/client-wrapper.ts +5 -6
- package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
- package/packages/lsp-core/src/lsp/workspace-markers.ts +1 -0
- package/packages/lsp-daemon/dist/cli.js +94 -59
- package/packages/lsp-daemon/dist/client.js +72 -37
- package/packages/lsp-daemon/dist/index.js +78 -43
- package/packages/lsp-tools-mcp/dist/cli.js +68 -33
- package/packages/lsp-tools-mcp/dist/mcp.js +68 -33
- package/packages/lsp-tools-mcp/dist/tools.js +68 -33
- 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/codegraph/dist/cli.js +9 -0
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +9 -0
- package/packages/omo-codex/plugin/components/codegraph/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 +83 -54
- 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/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/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-loop/hooks/hooks.json +4 -4
- 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-codegraph-init-guidance.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-checking-codegraph-bootstrap.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-start-work-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-start-work-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 +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
package/dist/cli/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "oh-my-opencode",
|
|
2148
|
-
version: "5.0.0-beta.
|
|
2148
|
+
version: "5.0.0-beta.12",
|
|
2149
2149
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2150
2150
|
main: "./dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
|
@@ -2326,7 +2326,7 @@ var init_package = __esm(() => {
|
|
|
2326
2326
|
zod: "^4.4.3"
|
|
2327
2327
|
},
|
|
2328
2328
|
devDependencies: {
|
|
2329
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
2329
|
+
"@code-yeongyu/senpi": "2026.8.19",
|
|
2330
2330
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
2331
2331
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
2332
2332
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -2367,18 +2367,18 @@ var init_package = __esm(() => {
|
|
|
2367
2367
|
typescript: "^7.0.2"
|
|
2368
2368
|
},
|
|
2369
2369
|
optionalDependencies: {
|
|
2370
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
2371
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
2372
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
2373
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
2374
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
2375
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
2376
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
2377
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
2378
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
2379
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
2380
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
2381
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
2370
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.12",
|
|
2371
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.12",
|
|
2372
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.12",
|
|
2373
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.12",
|
|
2374
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.12",
|
|
2375
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.12",
|
|
2376
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.12",
|
|
2377
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.12",
|
|
2378
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.12",
|
|
2379
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.12",
|
|
2380
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.12",
|
|
2381
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.12"
|
|
2382
2382
|
},
|
|
2383
2383
|
overrides: {
|
|
2384
2384
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -22406,7 +22406,7 @@ var init_codegraph = __esm(() => {
|
|
|
22406
22406
|
});
|
|
22407
22407
|
|
|
22408
22408
|
// packages/omo-config-core/src/schema/memory.ts
|
|
22409
|
-
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
22409
|
+
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
22410
22410
|
var init_memory = __esm(() => {
|
|
22411
22411
|
init_zod();
|
|
22412
22412
|
OmoMemoryReflectionTriggerSchema = object({
|
|
@@ -22452,6 +22452,9 @@ var init_memory = __esm(() => {
|
|
|
22452
22452
|
OmoMemorySoulSchema = object({
|
|
22453
22453
|
edit_notice: boolean2().default(true)
|
|
22454
22454
|
}).strict();
|
|
22455
|
+
OmoMemoryWriteNoticeSchema = object({
|
|
22456
|
+
enabled: boolean2().default(true)
|
|
22457
|
+
}).strict();
|
|
22455
22458
|
OmoMemoryReflectionTriggerLayerSchema = object({
|
|
22456
22459
|
step_count: number2().int().nonnegative().optional(),
|
|
22457
22460
|
on_compaction: boolean2().optional()
|
|
@@ -22495,6 +22498,9 @@ var init_memory = __esm(() => {
|
|
|
22495
22498
|
OmoMemorySoulLayerSchema = object({
|
|
22496
22499
|
edit_notice: boolean2().optional()
|
|
22497
22500
|
}).strict();
|
|
22501
|
+
OmoMemoryWriteNoticeLayerSchema = object({
|
|
22502
|
+
enabled: boolean2().optional()
|
|
22503
|
+
}).strict();
|
|
22498
22504
|
OmoMemoryAgentOverridesSchema = object({
|
|
22499
22505
|
enabled: boolean2().optional(),
|
|
22500
22506
|
agent: string2().min(1).optional(),
|
|
@@ -22504,6 +22510,7 @@ var init_memory = __esm(() => {
|
|
|
22504
22510
|
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
22505
22511
|
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
22506
22512
|
soul: OmoMemorySoulLayerSchema.optional(),
|
|
22513
|
+
write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
|
|
22507
22514
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
22508
22515
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
22509
22516
|
compile_warn_tokens: number2().int().positive().optional()
|
|
@@ -22532,6 +22539,7 @@ var init_memory = __esm(() => {
|
|
|
22532
22539
|
}),
|
|
22533
22540
|
people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
|
|
22534
22541
|
soul: OmoMemorySoulSchema.default({ edit_notice: true }),
|
|
22542
|
+
write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
|
|
22535
22543
|
sync: OmoMemorySyncSchema.default({ enabled: true }),
|
|
22536
22544
|
search: OmoMemorySearchSchema.default({ enabled: true }),
|
|
22537
22545
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
@@ -22547,6 +22555,7 @@ var init_memory = __esm(() => {
|
|
|
22547
22555
|
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
22548
22556
|
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
22549
22557
|
soul: OmoMemorySoulLayerSchema.optional(),
|
|
22558
|
+
write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
|
|
22550
22559
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
22551
22560
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
22552
22561
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
@@ -27941,24 +27950,14 @@ var init_agent_display_names = __esm(() => {
|
|
|
27941
27950
|
// packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
|
|
27942
27951
|
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
27943
27952
|
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
27944
|
-
|
|
27945
|
-
<Selection_Gate>
|
|
27946
|
-
BEFORE selecting this category, VERIFY ALL conditions:
|
|
27947
|
-
1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
|
|
27948
|
-
2. Task requires substantial effort across multiple systems/modules
|
|
27949
|
-
3. Changes have broad impact or require careful coordination
|
|
27950
|
-
4. NOT just "complex" - must be genuinely unclassifiable AND high-effort
|
|
27951
|
-
|
|
27952
|
-
If task fits ANY other category, DO NOT select unspecified-high.
|
|
27953
|
-
If task is unclassifiable but moderate-effort, use unspecified-low instead.
|
|
27954
|
-
</Selection_Gate>
|
|
27955
|
-
</Category_Context>`, ANTHROPIC_CATEGORIES;
|
|
27953
|
+
</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;
|
|
27956
27954
|
var init_anthropic_categories = __esm(() => {
|
|
27957
27955
|
ANTHROPIC_CATEGORIES = [
|
|
27958
27956
|
{
|
|
27959
27957
|
name: "unspecified-high",
|
|
27960
27958
|
config: { model: "kimi-for-coding/k3", variant: "max" },
|
|
27961
27959
|
description: "Tasks that don't fit other categories, high effort required",
|
|
27960
|
+
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
27962
27961
|
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
|
|
27963
27962
|
}
|
|
27964
27963
|
];
|
|
@@ -28215,64 +28214,10 @@ Approach:
|
|
|
28215
28214
|
- Minimal viable implementation
|
|
28216
28215
|
- Skip unnecessary abstractions
|
|
28217
28216
|
- Direct and concise
|
|
28218
|
-
</Category_Context>
|
|
28219
|
-
|
|
28220
|
-
<Caller_Warning>
|
|
28221
|
-
THIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.6-luna-fast).
|
|
28222
|
-
|
|
28223
|
-
The model executing this task is optimized for speed over depth. Your prompt MUST be:
|
|
28224
|
-
|
|
28225
|
-
**EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:
|
|
28226
|
-
1. MUST DO: List every required action as atomic, numbered steps
|
|
28227
|
-
2. MUST NOT DO: Explicitly forbid likely mistakes and deviations
|
|
28228
|
-
3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples
|
|
28229
|
-
|
|
28230
|
-
**WHY THIS MATTERS:**
|
|
28231
|
-
- Smaller models benefit from explicit guardrails
|
|
28232
|
-
- Vague instructions may lead to unpredictable results
|
|
28233
|
-
- Implicit expectations may be missed
|
|
28234
|
-
**PROMPT STRUCTURE (MANDATORY):**
|
|
28235
|
-
\`\`\`
|
|
28236
|
-
TASK: [One-sentence goal]
|
|
28237
|
-
|
|
28238
|
-
MUST DO:
|
|
28239
|
-
1. [Specific action with exact details]
|
|
28240
|
-
2. [Another specific action]
|
|
28241
|
-
...
|
|
28242
|
-
|
|
28243
|
-
MUST NOT DO:
|
|
28244
|
-
- [Forbidden action + why]
|
|
28245
|
-
- [Another forbidden action]
|
|
28246
|
-
...
|
|
28247
|
-
|
|
28248
|
-
EXPECTED OUTPUT:
|
|
28249
|
-
- [Exact deliverable description]
|
|
28250
|
-
- [Success criteria / verification method]
|
|
28251
|
-
\`\`\`
|
|
28252
|
-
|
|
28253
|
-
If your prompt lacks this structure, REWRITE IT before delegating.
|
|
28254
|
-
</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
28217
|
+
</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>
|
|
28255
28218
|
You are working on tasks that don't fit specific categories but require moderate effort.
|
|
28256
|
-
|
|
28257
|
-
<
|
|
28258
|
-
BEFORE selecting this category, VERIFY ALL conditions:
|
|
28259
|
-
1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
|
|
28260
|
-
2. Task requires more than trivial effort but is NOT system-wide
|
|
28261
|
-
3. Scope is contained within a few files/modules
|
|
28262
|
-
|
|
28263
|
-
If task fits ANY other category, DO NOT select unspecified-low.
|
|
28264
|
-
This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
|
|
28265
|
-
</Selection_Gate>
|
|
28266
|
-
</Category_Context>
|
|
28267
|
-
|
|
28268
|
-
<Caller_Warning>
|
|
28269
|
-
THIS CATEGORY USES GROK 4.6 (xhigh).
|
|
28270
|
-
|
|
28271
|
-
**PROVIDE CLEAR STRUCTURE:**
|
|
28272
|
-
1. MUST DO: Enumerate required actions explicitly
|
|
28273
|
-
2. MUST NOT DO: State forbidden actions to prevent scope creep
|
|
28274
|
-
3. EXPECTED OUTPUT: Define concrete success criteria
|
|
28275
|
-
</Caller_Warning>`, OPENAI_CATEGORIES;
|
|
28219
|
+
</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>
|
|
28220
|
+
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, OPENAI_CATEGORIES;
|
|
28276
28221
|
var init_openai_categories = __esm(() => {
|
|
28277
28222
|
init_types4();
|
|
28278
28223
|
OPENAI_CATEGORIES = [
|
|
@@ -28294,12 +28239,14 @@ var init_openai_categories = __esm(() => {
|
|
|
28294
28239
|
name: "quick",
|
|
28295
28240
|
config: { model: "kimi-for-coding/kimi-for-coding-highspeed" },
|
|
28296
28241
|
description: "Trivial tasks - single file changes, typo fixes, simple modifications",
|
|
28242
|
+
callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
|
|
28297
28243
|
promptAppend: QUICK_CATEGORY_PROMPT_APPEND
|
|
28298
28244
|
},
|
|
28299
28245
|
{
|
|
28300
28246
|
name: "unspecified-low",
|
|
28301
28247
|
config: { model: "xai/grok-4.6", variant: "xhigh" },
|
|
28302
28248
|
description: "Tasks that don't fit other categories, low effort required",
|
|
28249
|
+
callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
28303
28250
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
28304
28251
|
}
|
|
28305
28252
|
];
|
|
@@ -28309,7 +28256,7 @@ var init_openai_categories = __esm(() => {
|
|
|
28309
28256
|
function buildCategoryRecord(selector) {
|
|
28310
28257
|
return Object.fromEntries(BUILTIN_CATEGORIES.map((definition) => [definition.name, selector(definition)]));
|
|
28311
28258
|
}
|
|
28312
|
-
var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
|
|
28259
|
+
var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
|
|
28313
28260
|
var init_builtin_categories = __esm(() => {
|
|
28314
28261
|
init_anthropic_categories();
|
|
28315
28262
|
init_google_categories();
|
|
@@ -28324,6 +28271,7 @@ var init_builtin_categories = __esm(() => {
|
|
|
28324
28271
|
DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
|
|
28325
28272
|
CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition) => definition.promptAppend);
|
|
28326
28273
|
CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
|
|
28274
|
+
CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
|
|
28327
28275
|
CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
|
|
28328
28276
|
BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [definition.name, definition.requiresModel]));
|
|
28329
28277
|
});
|
|
@@ -94644,7 +94592,7 @@ var package_default2;
|
|
|
94644
94592
|
var init_package2 = __esm(() => {
|
|
94645
94593
|
package_default2 = {
|
|
94646
94594
|
name: "@oh-my-opencode/omo-codex",
|
|
94647
|
-
version: "5.0.0-beta.
|
|
94595
|
+
version: "5.0.0-beta.12",
|
|
94648
94596
|
type: "module",
|
|
94649
94597
|
private: true,
|
|
94650
94598
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
package/dist/cli-node/index.js
CHANGED
|
@@ -2146,7 +2146,7 @@ var package_default;
|
|
|
2146
2146
|
var init_package = __esm(() => {
|
|
2147
2147
|
package_default = {
|
|
2148
2148
|
name: "oh-my-opencode",
|
|
2149
|
-
version: "5.0.0-beta.
|
|
2149
|
+
version: "5.0.0-beta.12",
|
|
2150
2150
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2151
2151
|
main: "./dist/index.js",
|
|
2152
2152
|
types: "dist/index.d.ts",
|
|
@@ -2327,7 +2327,7 @@ var init_package = __esm(() => {
|
|
|
2327
2327
|
zod: "^4.4.3"
|
|
2328
2328
|
},
|
|
2329
2329
|
devDependencies: {
|
|
2330
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
2330
|
+
"@code-yeongyu/senpi": "2026.8.19",
|
|
2331
2331
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
2332
2332
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
2333
2333
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -2368,18 +2368,18 @@ var init_package = __esm(() => {
|
|
|
2368
2368
|
typescript: "^7.0.2"
|
|
2369
2369
|
},
|
|
2370
2370
|
optionalDependencies: {
|
|
2371
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
2372
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
2373
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
2374
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
2375
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
2376
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
2377
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
2378
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
2379
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
2380
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
2381
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
2382
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
2371
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.12",
|
|
2372
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.12",
|
|
2373
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.12",
|
|
2374
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.12",
|
|
2375
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.12",
|
|
2376
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.12",
|
|
2377
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.12",
|
|
2378
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.12",
|
|
2379
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.12",
|
|
2380
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.12",
|
|
2381
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.12",
|
|
2382
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.12"
|
|
2383
2383
|
},
|
|
2384
2384
|
overrides: {
|
|
2385
2385
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -22407,7 +22407,7 @@ var init_codegraph = __esm(() => {
|
|
|
22407
22407
|
});
|
|
22408
22408
|
|
|
22409
22409
|
// packages/omo-config-core/src/schema/memory.ts
|
|
22410
|
-
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
22410
|
+
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
22411
22411
|
var init_memory = __esm(() => {
|
|
22412
22412
|
init_zod();
|
|
22413
22413
|
OmoMemoryReflectionTriggerSchema = object({
|
|
@@ -22453,6 +22453,9 @@ var init_memory = __esm(() => {
|
|
|
22453
22453
|
OmoMemorySoulSchema = object({
|
|
22454
22454
|
edit_notice: boolean2().default(true)
|
|
22455
22455
|
}).strict();
|
|
22456
|
+
OmoMemoryWriteNoticeSchema = object({
|
|
22457
|
+
enabled: boolean2().default(true)
|
|
22458
|
+
}).strict();
|
|
22456
22459
|
OmoMemoryReflectionTriggerLayerSchema = object({
|
|
22457
22460
|
step_count: number2().int().nonnegative().optional(),
|
|
22458
22461
|
on_compaction: boolean2().optional()
|
|
@@ -22496,6 +22499,9 @@ var init_memory = __esm(() => {
|
|
|
22496
22499
|
OmoMemorySoulLayerSchema = object({
|
|
22497
22500
|
edit_notice: boolean2().optional()
|
|
22498
22501
|
}).strict();
|
|
22502
|
+
OmoMemoryWriteNoticeLayerSchema = object({
|
|
22503
|
+
enabled: boolean2().optional()
|
|
22504
|
+
}).strict();
|
|
22499
22505
|
OmoMemoryAgentOverridesSchema = object({
|
|
22500
22506
|
enabled: boolean2().optional(),
|
|
22501
22507
|
agent: string2().min(1).optional(),
|
|
@@ -22505,6 +22511,7 @@ var init_memory = __esm(() => {
|
|
|
22505
22511
|
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
22506
22512
|
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
22507
22513
|
soul: OmoMemorySoulLayerSchema.optional(),
|
|
22514
|
+
write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
|
|
22508
22515
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
22509
22516
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
22510
22517
|
compile_warn_tokens: number2().int().positive().optional()
|
|
@@ -22533,6 +22540,7 @@ var init_memory = __esm(() => {
|
|
|
22533
22540
|
}),
|
|
22534
22541
|
people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
|
|
22535
22542
|
soul: OmoMemorySoulSchema.default({ edit_notice: true }),
|
|
22543
|
+
write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
|
|
22536
22544
|
sync: OmoMemorySyncSchema.default({ enabled: true }),
|
|
22537
22545
|
search: OmoMemorySearchSchema.default({ enabled: true }),
|
|
22538
22546
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
@@ -22548,6 +22556,7 @@ var init_memory = __esm(() => {
|
|
|
22548
22556
|
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
22549
22557
|
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
22550
22558
|
soul: OmoMemorySoulLayerSchema.optional(),
|
|
22559
|
+
write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
|
|
22551
22560
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
22552
22561
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
22553
22562
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
@@ -27942,24 +27951,14 @@ var init_agent_display_names = __esm(() => {
|
|
|
27942
27951
|
// packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
|
|
27943
27952
|
var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
27944
27953
|
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
27945
|
-
|
|
27946
|
-
<Selection_Gate>
|
|
27947
|
-
BEFORE selecting this category, VERIFY ALL conditions:
|
|
27948
|
-
1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
|
|
27949
|
-
2. Task requires substantial effort across multiple systems/modules
|
|
27950
|
-
3. Changes have broad impact or require careful coordination
|
|
27951
|
-
4. NOT just "complex" - must be genuinely unclassifiable AND high-effort
|
|
27952
|
-
|
|
27953
|
-
If task fits ANY other category, DO NOT select unspecified-high.
|
|
27954
|
-
If task is unclassifiable but moderate-effort, use unspecified-low instead.
|
|
27955
|
-
</Selection_Gate>
|
|
27956
|
-
</Category_Context>`, ANTHROPIC_CATEGORIES;
|
|
27954
|
+
</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;
|
|
27957
27955
|
var init_anthropic_categories = __esm(() => {
|
|
27958
27956
|
ANTHROPIC_CATEGORIES = [
|
|
27959
27957
|
{
|
|
27960
27958
|
name: "unspecified-high",
|
|
27961
27959
|
config: { model: "kimi-for-coding/k3", variant: "max" },
|
|
27962
27960
|
description: "Tasks that don't fit other categories, high effort required",
|
|
27961
|
+
callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
|
|
27963
27962
|
promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
|
|
27964
27963
|
}
|
|
27965
27964
|
];
|
|
@@ -28216,64 +28215,10 @@ Approach:
|
|
|
28216
28215
|
- Minimal viable implementation
|
|
28217
28216
|
- Skip unnecessary abstractions
|
|
28218
28217
|
- Direct and concise
|
|
28219
|
-
</Category_Context>
|
|
28220
|
-
|
|
28221
|
-
<Caller_Warning>
|
|
28222
|
-
THIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.6-luna-fast).
|
|
28223
|
-
|
|
28224
|
-
The model executing this task is optimized for speed over depth. Your prompt MUST be:
|
|
28225
|
-
|
|
28226
|
-
**EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:
|
|
28227
|
-
1. MUST DO: List every required action as atomic, numbered steps
|
|
28228
|
-
2. MUST NOT DO: Explicitly forbid likely mistakes and deviations
|
|
28229
|
-
3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples
|
|
28230
|
-
|
|
28231
|
-
**WHY THIS MATTERS:**
|
|
28232
|
-
- Smaller models benefit from explicit guardrails
|
|
28233
|
-
- Vague instructions may lead to unpredictable results
|
|
28234
|
-
- Implicit expectations may be missed
|
|
28235
|
-
**PROMPT STRUCTURE (MANDATORY):**
|
|
28236
|
-
\`\`\`
|
|
28237
|
-
TASK: [One-sentence goal]
|
|
28238
|
-
|
|
28239
|
-
MUST DO:
|
|
28240
|
-
1. [Specific action with exact details]
|
|
28241
|
-
2. [Another specific action]
|
|
28242
|
-
...
|
|
28243
|
-
|
|
28244
|
-
MUST NOT DO:
|
|
28245
|
-
- [Forbidden action + why]
|
|
28246
|
-
- [Another forbidden action]
|
|
28247
|
-
...
|
|
28248
|
-
|
|
28249
|
-
EXPECTED OUTPUT:
|
|
28250
|
-
- [Exact deliverable description]
|
|
28251
|
-
- [Success criteria / verification method]
|
|
28252
|
-
\`\`\`
|
|
28253
|
-
|
|
28254
|
-
If your prompt lacks this structure, REWRITE IT before delegating.
|
|
28255
|
-
</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
28218
|
+
</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>
|
|
28256
28219
|
You are working on tasks that don't fit specific categories but require moderate effort.
|
|
28257
|
-
|
|
28258
|
-
<
|
|
28259
|
-
BEFORE selecting this category, VERIFY ALL conditions:
|
|
28260
|
-
1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
|
|
28261
|
-
2. Task requires more than trivial effort but is NOT system-wide
|
|
28262
|
-
3. Scope is contained within a few files/modules
|
|
28263
|
-
|
|
28264
|
-
If task fits ANY other category, DO NOT select unspecified-low.
|
|
28265
|
-
This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
|
|
28266
|
-
</Selection_Gate>
|
|
28267
|
-
</Category_Context>
|
|
28268
|
-
|
|
28269
|
-
<Caller_Warning>
|
|
28270
|
-
THIS CATEGORY USES GROK 4.6 (xhigh).
|
|
28271
|
-
|
|
28272
|
-
**PROVIDE CLEAR STRUCTURE:**
|
|
28273
|
-
1. MUST DO: Enumerate required actions explicitly
|
|
28274
|
-
2. MUST NOT DO: State forbidden actions to prevent scope creep
|
|
28275
|
-
3. EXPECTED OUTPUT: Define concrete success criteria
|
|
28276
|
-
</Caller_Warning>`, OPENAI_CATEGORIES;
|
|
28220
|
+
</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>
|
|
28221
|
+
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, OPENAI_CATEGORIES;
|
|
28277
28222
|
var init_openai_categories = __esm(() => {
|
|
28278
28223
|
init_types4();
|
|
28279
28224
|
OPENAI_CATEGORIES = [
|
|
@@ -28295,12 +28240,14 @@ var init_openai_categories = __esm(() => {
|
|
|
28295
28240
|
name: "quick",
|
|
28296
28241
|
config: { model: "kimi-for-coding/kimi-for-coding-highspeed" },
|
|
28297
28242
|
description: "Trivial tasks - single file changes, typo fixes, simple modifications",
|
|
28243
|
+
callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
|
|
28298
28244
|
promptAppend: QUICK_CATEGORY_PROMPT_APPEND
|
|
28299
28245
|
},
|
|
28300
28246
|
{
|
|
28301
28247
|
name: "unspecified-low",
|
|
28302
28248
|
config: { model: "xai/grok-4.6", variant: "xhigh" },
|
|
28303
28249
|
description: "Tasks that don't fit other categories, low effort required",
|
|
28250
|
+
callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
28304
28251
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
28305
28252
|
}
|
|
28306
28253
|
];
|
|
@@ -28310,7 +28257,7 @@ var init_openai_categories = __esm(() => {
|
|
|
28310
28257
|
function buildCategoryRecord(selector) {
|
|
28311
28258
|
return Object.fromEntries(BUILTIN_CATEGORIES.map((definition) => [definition.name, selector(definition)]));
|
|
28312
28259
|
}
|
|
28313
|
-
var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
|
|
28260
|
+
var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
|
|
28314
28261
|
var init_builtin_categories = __esm(() => {
|
|
28315
28262
|
init_anthropic_categories();
|
|
28316
28263
|
init_google_categories();
|
|
@@ -28325,6 +28272,7 @@ var init_builtin_categories = __esm(() => {
|
|
|
28325
28272
|
DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
|
|
28326
28273
|
CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition) => definition.promptAppend);
|
|
28327
28274
|
CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
|
|
28275
|
+
CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
|
|
28328
28276
|
CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
|
|
28329
28277
|
BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [definition.name, definition.requiresModel]));
|
|
28330
28278
|
});
|
|
@@ -94700,7 +94648,7 @@ var package_default2;
|
|
|
94700
94648
|
var init_package2 = __esm(() => {
|
|
94701
94649
|
package_default2 = {
|
|
94702
94650
|
name: "@oh-my-opencode/omo-codex",
|
|
94703
|
-
version: "5.0.0-beta.
|
|
94651
|
+
version: "5.0.0-beta.12",
|
|
94704
94652
|
type: "module",
|
|
94705
94653
|
private: true,
|
|
94706
94654
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|