oh-my-opencode 5.0.0-beta.6 → 5.0.0-beta.8
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/work-with-pr/SKILL.md +37 -23
- package/.opencode/skills/work-with-pr/SKILL.md +37 -23
- package/README.md +12 -1
- package/dist/agents/sisyphus/grok-4.d.ts +20 -0
- package/dist/agents/sisyphus/index.d.ts +2 -0
- package/dist/agents/sisyphus-agent-config.d.ts +6 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +593 -399
- package/dist/cli-node/index.js +593 -399
- package/dist/index.js +353 -36
- package/dist/shared/normalize-sdk-response.d.ts +1 -0
- package/dist/skills/frontend/SKILL.md +10 -7
- package/dist/skills/frontend/references/design/_INDEX.md +1 -0
- package/dist/skills/frontend/references/design/stylegallery.md +80 -0
- package/dist/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/dist/skills/ulw-plan/SKILL.md +2 -2
- package/dist/skills/ulw-plan/references/full-workflow.md +27 -3
- package/dist/skills/ulw-plan/references/intent-clear.md +2 -1
- package/dist/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/dist/tui.js +152 -11
- package/package.json +19 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +44 -0
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +0 -28
- 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 +100 -5
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +100 -5
- 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 +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/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/directive.md +6 -0
- 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/ultrawork/skills/ultrawork/SKILL.md +6 -0
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +6 -0
- 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 +3 -2
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
- 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/plugin/skills/frontend/SKILL.md +10 -7
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +6 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/shared-skills/skills/frontend/SKILL.md +10 -7
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
- package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -2
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +3 -3
package/dist/index.js
CHANGED
|
@@ -5537,14 +5537,15 @@ var init_codegraph = __esm(() => {
|
|
|
5537
5537
|
|
|
5538
5538
|
// packages/omo-config-core/src/schema/memory.ts
|
|
5539
5539
|
import * as z7 from "zod";
|
|
5540
|
-
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
5540
|
+
var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
|
|
5541
5541
|
var init_memory = __esm(() => {
|
|
5542
5542
|
OmoMemoryReflectionTriggerSchema = z7.object({
|
|
5543
|
-
step_count: z7.number().int().nonnegative().default(
|
|
5543
|
+
step_count: z7.number().int().nonnegative().default(25),
|
|
5544
5544
|
on_compaction: z7.boolean().default(true)
|
|
5545
5545
|
}).strict();
|
|
5546
5546
|
OmoMemoryReflectionSchema = z7.object({
|
|
5547
|
-
|
|
5547
|
+
enabled: z7.boolean().default(true),
|
|
5548
|
+
trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
|
|
5548
5549
|
merge: z7.enum(["auto", "integration"]).default("auto"),
|
|
5549
5550
|
category: z7.string().min(1).default("quick"),
|
|
5550
5551
|
timeout_minutes: z7.number().int().positive().default(15),
|
|
@@ -5557,11 +5558,36 @@ var init_memory = __esm(() => {
|
|
|
5557
5558
|
OmoMemorySearchSchema = z7.object({
|
|
5558
5559
|
enabled: z7.boolean().default(true)
|
|
5559
5560
|
}).strict();
|
|
5561
|
+
OmoMemoryNudgeSchema = z7.object({
|
|
5562
|
+
enabled: z7.boolean().default(true),
|
|
5563
|
+
every_user_turns: z7.number().int().min(1).default(10)
|
|
5564
|
+
}).strict();
|
|
5565
|
+
OmoMemoryFactsSchema = z7.object({
|
|
5566
|
+
enabled: z7.boolean().default(true),
|
|
5567
|
+
debounce_settles: z7.number().int().min(1).default(4)
|
|
5568
|
+
}).strict();
|
|
5569
|
+
OmoMemoryDreamSchema = z7.object({
|
|
5570
|
+
enabled: z7.boolean().default(true),
|
|
5571
|
+
idle_minutes: z7.number().int().min(0).default(30),
|
|
5572
|
+
min_hours_between: z7.number().int().min(1).default(24),
|
|
5573
|
+
shutdown_launch: z7.boolean().default(true),
|
|
5574
|
+
auto_select_max: z7.number().int().min(1).max(10).default(5),
|
|
5575
|
+
auto_select_max_chars: z7.number().int().min(1e4).default(150000)
|
|
5576
|
+
}).strict();
|
|
5577
|
+
OmoMemoryPeopleSchema = z7.object({
|
|
5578
|
+
enabled: z7.boolean().default(true),
|
|
5579
|
+
max_entries: z7.number().int().min(1).max(100).default(40),
|
|
5580
|
+
max_entry_chars: z7.number().int().min(50).max(500).default(200)
|
|
5581
|
+
}).strict();
|
|
5582
|
+
OmoMemorySoulSchema = z7.object({
|
|
5583
|
+
edit_notice: z7.boolean().default(true)
|
|
5584
|
+
}).strict();
|
|
5560
5585
|
OmoMemoryReflectionTriggerLayerSchema = z7.object({
|
|
5561
5586
|
step_count: z7.number().int().nonnegative().optional(),
|
|
5562
5587
|
on_compaction: z7.boolean().optional()
|
|
5563
5588
|
}).strict();
|
|
5564
5589
|
OmoMemoryReflectionLayerSchema = z7.object({
|
|
5590
|
+
enabled: z7.boolean().optional(),
|
|
5565
5591
|
trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
|
|
5566
5592
|
merge: z7.enum(["auto", "integration"]).optional(),
|
|
5567
5593
|
category: z7.string().min(1).optional(),
|
|
@@ -5575,10 +5601,39 @@ var init_memory = __esm(() => {
|
|
|
5575
5601
|
OmoMemorySearchLayerSchema = z7.object({
|
|
5576
5602
|
enabled: z7.boolean().optional()
|
|
5577
5603
|
}).strict();
|
|
5604
|
+
OmoMemoryNudgeLayerSchema = z7.object({
|
|
5605
|
+
enabled: z7.boolean().optional(),
|
|
5606
|
+
every_user_turns: z7.number().int().min(1).optional()
|
|
5607
|
+
}).strict();
|
|
5608
|
+
OmoMemoryFactsLayerSchema = z7.object({
|
|
5609
|
+
enabled: z7.boolean().optional(),
|
|
5610
|
+
debounce_settles: z7.number().int().min(1).optional()
|
|
5611
|
+
}).strict();
|
|
5612
|
+
OmoMemoryDreamLayerSchema = z7.object({
|
|
5613
|
+
enabled: z7.boolean().optional(),
|
|
5614
|
+
idle_minutes: z7.number().int().min(0).optional(),
|
|
5615
|
+
min_hours_between: z7.number().int().min(1).optional(),
|
|
5616
|
+
shutdown_launch: z7.boolean().optional(),
|
|
5617
|
+
auto_select_max: z7.number().int().min(1).max(10).optional(),
|
|
5618
|
+
auto_select_max_chars: z7.number().int().min(1e4).optional()
|
|
5619
|
+
}).strict();
|
|
5620
|
+
OmoMemoryPeopleLayerSchema = z7.object({
|
|
5621
|
+
enabled: z7.boolean().optional(),
|
|
5622
|
+
max_entries: z7.number().int().min(1).max(100).optional(),
|
|
5623
|
+
max_entry_chars: z7.number().int().min(50).max(500).optional()
|
|
5624
|
+
}).strict();
|
|
5625
|
+
OmoMemorySoulLayerSchema = z7.object({
|
|
5626
|
+
edit_notice: z7.boolean().optional()
|
|
5627
|
+
}).strict();
|
|
5578
5628
|
OmoMemoryAgentOverridesSchema = z7.object({
|
|
5579
5629
|
enabled: z7.boolean().optional(),
|
|
5580
5630
|
agent: z7.string().min(1).optional(),
|
|
5581
5631
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
5632
|
+
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
5633
|
+
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
5634
|
+
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
5635
|
+
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
5636
|
+
soul: OmoMemorySoulLayerSchema.optional(),
|
|
5582
5637
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
5583
5638
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
5584
5639
|
compile_warn_tokens: z7.number().int().positive().optional()
|
|
@@ -5588,12 +5643,25 @@ var init_memory = __esm(() => {
|
|
|
5588
5643
|
agent: z7.string().min(1).default("auto"),
|
|
5589
5644
|
tool_exposure: z7.enum(["direct", "search"]).default("direct"),
|
|
5590
5645
|
reflection: OmoMemoryReflectionSchema.default({
|
|
5591
|
-
|
|
5646
|
+
enabled: true,
|
|
5647
|
+
trigger: { step_count: 25, on_compaction: true },
|
|
5592
5648
|
merge: "auto",
|
|
5593
5649
|
category: "quick",
|
|
5594
5650
|
timeout_minutes: 15,
|
|
5595
5651
|
sandbox: "auto"
|
|
5596
5652
|
}),
|
|
5653
|
+
nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
|
|
5654
|
+
facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
|
|
5655
|
+
dream: OmoMemoryDreamSchema.default({
|
|
5656
|
+
enabled: true,
|
|
5657
|
+
idle_minutes: 30,
|
|
5658
|
+
min_hours_between: 24,
|
|
5659
|
+
shutdown_launch: true,
|
|
5660
|
+
auto_select_max: 5,
|
|
5661
|
+
auto_select_max_chars: 150000
|
|
5662
|
+
}),
|
|
5663
|
+
people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
|
|
5664
|
+
soul: OmoMemorySoulSchema.default({ edit_notice: true }),
|
|
5597
5665
|
sync: OmoMemorySyncSchema.default({ enabled: true }),
|
|
5598
5666
|
search: OmoMemorySearchSchema.default({ enabled: true }),
|
|
5599
5667
|
compile_warn_tokens: z7.number().int().positive().default(30000),
|
|
@@ -5604,6 +5672,11 @@ var init_memory = __esm(() => {
|
|
|
5604
5672
|
agent: z7.string().min(1).optional(),
|
|
5605
5673
|
tool_exposure: z7.enum(["direct", "search"]).optional(),
|
|
5606
5674
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
5675
|
+
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
5676
|
+
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
5677
|
+
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
5678
|
+
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
5679
|
+
soul: OmoMemorySoulLayerSchema.optional(),
|
|
5607
5680
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
5608
5681
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
5609
5682
|
compile_warn_tokens: z7.number().int().positive().optional(),
|
|
@@ -5643,7 +5716,7 @@ function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism
|
|
|
5643
5716
|
residency_max_children: record8["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3)
|
|
5644
5717
|
});
|
|
5645
5718
|
}
|
|
5646
|
-
var ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskSettingsSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
|
|
5719
|
+
var ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskDagSettingsSchema, OmoTaskSettingsSchema, OmoTaskDagSettingsLayerSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
|
|
5647
5720
|
var init_task = __esm(() => {
|
|
5648
5721
|
ResidencyMaxChildrenInputSchema = z9.union([z9.number().int().positive(), z9.literal("unlimited")]);
|
|
5649
5722
|
OmoTaskWaitSchema = z9.object({
|
|
@@ -5659,6 +5732,16 @@ var init_task = __esm(() => {
|
|
|
5659
5732
|
OmoTaskWarningsSchema = z9.object({
|
|
5660
5733
|
unavailable_categories: z9.boolean().default(true)
|
|
5661
5734
|
}).strict();
|
|
5735
|
+
OmoTaskDagSettingsSchema = z9.object({
|
|
5736
|
+
max_nodes_per_run: z9.number().int().positive().default(64),
|
|
5737
|
+
max_runs_per_session: z9.number().int().positive().default(16),
|
|
5738
|
+
subscriber_ring: z9.number().int().positive().default(1000),
|
|
5739
|
+
heartbeat_ms: z9.number().int().positive().default(15000),
|
|
5740
|
+
history_default_limit: z9.number().int().positive().default(256),
|
|
5741
|
+
history_max_limit: z9.number().int().positive().default(1000),
|
|
5742
|
+
retention_days: z9.number().int().positive().default(7),
|
|
5743
|
+
max_prompt_bytes: z9.number().int().positive().default(262144)
|
|
5744
|
+
}).strict();
|
|
5662
5745
|
OmoTaskSettingsSchema = z9.object({
|
|
5663
5746
|
default_execution_mode: z9.enum(["in-process", "process"]).default("in-process"),
|
|
5664
5747
|
default_concurrency: z9.number().int().positive().default(5),
|
|
@@ -5676,7 +5759,18 @@ var init_task = __esm(() => {
|
|
|
5676
5759
|
max_members: 8,
|
|
5677
5760
|
max_parallel_members: 4,
|
|
5678
5761
|
max_wall_clock_minutes: 120
|
|
5679
|
-
})
|
|
5762
|
+
}),
|
|
5763
|
+
dag: OmoTaskDagSettingsSchema.optional()
|
|
5764
|
+
}).strict();
|
|
5765
|
+
OmoTaskDagSettingsLayerSchema = z9.object({
|
|
5766
|
+
max_nodes_per_run: z9.number().int().positive().optional(),
|
|
5767
|
+
max_runs_per_session: z9.number().int().positive().optional(),
|
|
5768
|
+
subscriber_ring: z9.number().int().positive().optional(),
|
|
5769
|
+
heartbeat_ms: z9.number().int().positive().optional(),
|
|
5770
|
+
history_default_limit: z9.number().int().positive().optional(),
|
|
5771
|
+
history_max_limit: z9.number().int().positive().optional(),
|
|
5772
|
+
retention_days: z9.number().int().positive().optional(),
|
|
5773
|
+
max_prompt_bytes: z9.number().int().positive().optional()
|
|
5680
5774
|
}).strict();
|
|
5681
5775
|
OmoTaskWaitLayerSchema = z9.object({
|
|
5682
5776
|
min_ms: z9.number().int().positive().optional(),
|
|
@@ -5704,7 +5798,8 @@ var init_task = __esm(() => {
|
|
|
5704
5798
|
resume_children: z9.boolean().optional(),
|
|
5705
5799
|
warnings: OmoTaskWarningsLayerSchema.optional(),
|
|
5706
5800
|
wait: OmoTaskWaitLayerSchema.optional(),
|
|
5707
|
-
team: OmoTaskTeamSettingsLayerSchema.optional()
|
|
5801
|
+
team: OmoTaskTeamSettingsLayerSchema.optional(),
|
|
5802
|
+
dag: OmoTaskDagSettingsLayerSchema.optional()
|
|
5708
5803
|
}).strict();
|
|
5709
5804
|
});
|
|
5710
5805
|
|
|
@@ -24431,10 +24526,10 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
24431
24526
|
quick: {
|
|
24432
24527
|
fallbackChain: [
|
|
24433
24528
|
{ providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed" },
|
|
24434
|
-
{ providers: ["
|
|
24529
|
+
{ providers: ["openai-codex"], model: "gpt-5.6-luna-fast", variant: "low" },
|
|
24435
24530
|
{ providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
|
|
24436
24531
|
{
|
|
24437
|
-
providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan", "
|
|
24532
|
+
providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan", "vercel"],
|
|
24438
24533
|
model: "qwen3.6-flash",
|
|
24439
24534
|
variant: "low"
|
|
24440
24535
|
},
|
|
@@ -24450,6 +24545,11 @@ var CATEGORY_MODEL_REQUIREMENTS = {
|
|
|
24450
24545
|
},
|
|
24451
24546
|
"unspecified-low": {
|
|
24452
24547
|
fallbackChain: [
|
|
24548
|
+
{
|
|
24549
|
+
providers: ["xai", "github-copilot", "opencode", "vercel"],
|
|
24550
|
+
model: "grok-4.6",
|
|
24551
|
+
variant: "xhigh"
|
|
24552
|
+
},
|
|
24453
24553
|
{
|
|
24454
24554
|
providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
|
|
24455
24555
|
model: "gpt-5.6-terra",
|
|
@@ -24590,6 +24690,16 @@ function isGlmModel(model) {
|
|
|
24590
24690
|
const modelName = extractModelName(model).toLowerCase();
|
|
24591
24691
|
return modelName.includes("glm");
|
|
24592
24692
|
}
|
|
24693
|
+
var GROK_45_RE = /grok-4-5(?![0-9])/;
|
|
24694
|
+
var GROK_46_RE = /grok-4-6(?![0-9])/;
|
|
24695
|
+
function isGrok45Model(model) {
|
|
24696
|
+
const modelName = extractModelName(model).toLowerCase().replaceAll(".", "-");
|
|
24697
|
+
return GROK_45_RE.test(modelName);
|
|
24698
|
+
}
|
|
24699
|
+
function isGrok46Model(model) {
|
|
24700
|
+
const modelName = extractModelName(model).toLowerCase().replaceAll(".", "-");
|
|
24701
|
+
return GROK_46_RE.test(modelName);
|
|
24702
|
+
}
|
|
24593
24703
|
var GEMINI_PROVIDERS = ["google/", "google-vertex/"];
|
|
24594
24704
|
function isGeminiModel(model) {
|
|
24595
24705
|
if (GEMINI_PROVIDERS.some((prefix) => model.startsWith(prefix)))
|
|
@@ -28109,6 +28219,7 @@ init_logger2();
|
|
|
28109
28219
|
|
|
28110
28220
|
// packages/omo-opencode/src/shared/normalize-sdk-response.ts
|
|
28111
28221
|
function normalizeSDKResponse(response, fallback, options) {
|
|
28222
|
+
const fallbackIsArray = Array.isArray(fallback);
|
|
28112
28223
|
if (response == null) {
|
|
28113
28224
|
return fallback;
|
|
28114
28225
|
}
|
|
@@ -28118,14 +28229,17 @@ function normalizeSDKResponse(response, fallback, options) {
|
|
|
28118
28229
|
if (typeof response === "object" && "data" in response) {
|
|
28119
28230
|
const data = response.data;
|
|
28120
28231
|
if (data != null) {
|
|
28232
|
+
if (fallbackIsArray && !Array.isArray(data)) {
|
|
28233
|
+
return fallback;
|
|
28234
|
+
}
|
|
28121
28235
|
return data;
|
|
28122
28236
|
}
|
|
28123
|
-
if (options?.preferResponseOnMissingData === true) {
|
|
28237
|
+
if (options?.preferResponseOnMissingData === true && !fallbackIsArray) {
|
|
28124
28238
|
return response;
|
|
28125
28239
|
}
|
|
28126
28240
|
return fallback;
|
|
28127
28241
|
}
|
|
28128
|
-
if (options?.preferResponseOnMissingData === true) {
|
|
28242
|
+
if (options?.preferResponseOnMissingData === true && !fallbackIsArray) {
|
|
28129
28243
|
return response;
|
|
28130
28244
|
}
|
|
28131
28245
|
return fallback;
|
|
@@ -28779,7 +28893,7 @@ This is NOT a default choice - it's for genuinely unclassifiable moderate-effort
|
|
|
28779
28893
|
</Category_Context>
|
|
28780
28894
|
|
|
28781
28895
|
<Caller_Warning>
|
|
28782
|
-
THIS CATEGORY USES
|
|
28896
|
+
THIS CATEGORY USES GROK 4.6 (xhigh).
|
|
28783
28897
|
|
|
28784
28898
|
**PROVIDE CLEAR STRUCTURE:**
|
|
28785
28899
|
1. MUST DO: Enumerate required actions explicitly
|
|
@@ -28809,7 +28923,7 @@ var OPENAI_CATEGORIES = [
|
|
|
28809
28923
|
},
|
|
28810
28924
|
{
|
|
28811
28925
|
name: "unspecified-low",
|
|
28812
|
-
config: { model: "
|
|
28926
|
+
config: { model: "xai/grok-4.6", variant: "xhigh" },
|
|
28813
28927
|
description: "Tasks that don't fit other categories, low effort required",
|
|
28814
28928
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
28815
28929
|
}
|
|
@@ -84126,6 +84240,47 @@ var model_capabilities_generated_default = {
|
|
|
84126
84240
|
input: 272000,
|
|
84127
84241
|
output: 128000
|
|
84128
84242
|
}
|
|
84243
|
+
},
|
|
84244
|
+
"grok-4.6": {
|
|
84245
|
+
id: "grok-4.6",
|
|
84246
|
+
family: "grok",
|
|
84247
|
+
reasoning: true,
|
|
84248
|
+
temperature: true,
|
|
84249
|
+
toolCall: true,
|
|
84250
|
+
modalities: {
|
|
84251
|
+
input: [
|
|
84252
|
+
"text",
|
|
84253
|
+
"image"
|
|
84254
|
+
],
|
|
84255
|
+
output: [
|
|
84256
|
+
"text"
|
|
84257
|
+
]
|
|
84258
|
+
},
|
|
84259
|
+
limit: {
|
|
84260
|
+
context: 500000,
|
|
84261
|
+
output: 500000
|
|
84262
|
+
}
|
|
84263
|
+
},
|
|
84264
|
+
"xai/grok-4.6": {
|
|
84265
|
+
id: "xai/grok-4.6",
|
|
84266
|
+
family: "grok",
|
|
84267
|
+
reasoning: true,
|
|
84268
|
+
temperature: true,
|
|
84269
|
+
toolCall: true,
|
|
84270
|
+
modalities: {
|
|
84271
|
+
input: [
|
|
84272
|
+
"text",
|
|
84273
|
+
"image",
|
|
84274
|
+
"pdf"
|
|
84275
|
+
],
|
|
84276
|
+
output: [
|
|
84277
|
+
"text"
|
|
84278
|
+
]
|
|
84279
|
+
},
|
|
84280
|
+
limit: {
|
|
84281
|
+
context: 500000,
|
|
84282
|
+
output: 500000
|
|
84283
|
+
}
|
|
84129
84284
|
}
|
|
84130
84285
|
}
|
|
84131
84286
|
};
|
|
@@ -98571,7 +98726,7 @@ function getCachedVersion(options = {}) {
|
|
|
98571
98726
|
// package.json
|
|
98572
98727
|
var package_default = {
|
|
98573
98728
|
name: "oh-my-opencode",
|
|
98574
|
-
version: "5.0.0-beta.
|
|
98729
|
+
version: "5.0.0-beta.8",
|
|
98575
98730
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
98576
98731
|
main: "./dist/index.js",
|
|
98577
98732
|
types: "dist/index.d.ts",
|
|
@@ -98751,7 +98906,7 @@ var package_default = {
|
|
|
98751
98906
|
zod: "^4.4.3"
|
|
98752
98907
|
},
|
|
98753
98908
|
devDependencies: {
|
|
98754
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
98909
|
+
"@code-yeongyu/senpi": "2026.8.16",
|
|
98755
98910
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
98756
98911
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
98757
98912
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -98783,7 +98938,7 @@ var package_default = {
|
|
|
98783
98938
|
"@oh-my-opencode/utils": "workspace:*",
|
|
98784
98939
|
"@types/js-yaml": "^4.0.9",
|
|
98785
98940
|
"@types/picomatch": "^4.0.3",
|
|
98786
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
98941
|
+
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
98787
98942
|
"@xterm/addon-unicode11": "^0.9.0",
|
|
98788
98943
|
"@xterm/xterm": "^6.0.0",
|
|
98789
98944
|
"bun-types": "1.3.14",
|
|
@@ -98792,24 +98947,24 @@ var package_default = {
|
|
|
98792
98947
|
typescript: "^7.0.2"
|
|
98793
98948
|
},
|
|
98794
98949
|
optionalDependencies: {
|
|
98795
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
98796
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
98797
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
98798
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
98799
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
98800
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
98801
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
98802
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
98803
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
98804
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
98805
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
98806
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
98950
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.8",
|
|
98951
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.8",
|
|
98952
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.8",
|
|
98953
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.8",
|
|
98954
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.8",
|
|
98955
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.8",
|
|
98956
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.8",
|
|
98957
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.8",
|
|
98958
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.8",
|
|
98959
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.8",
|
|
98960
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.8",
|
|
98961
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.8"
|
|
98807
98962
|
},
|
|
98808
98963
|
overrides: {
|
|
98809
|
-
"@earendil-works/pi-agent-core": "0.
|
|
98810
|
-
"@earendil-works/pi-ai": "0.
|
|
98811
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
98812
|
-
"@earendil-works/pi-tui": "0.
|
|
98964
|
+
"@earendil-works/pi-agent-core": "0.84.2",
|
|
98965
|
+
"@earendil-works/pi-ai": "0.84.2",
|
|
98966
|
+
"@earendil-works/pi-coding-agent": "0.84.2",
|
|
98967
|
+
"@earendil-works/pi-tui": "0.84.2",
|
|
98813
98968
|
hono: "^4.12.18",
|
|
98814
98969
|
"@hono/node-server": "^1.19.13",
|
|
98815
98970
|
"express-rate-limit": "^8.5.1",
|
|
@@ -104872,7 +105027,7 @@ task(category="quick", load_skills=["git-master"], run_in_background=true)
|
|
|
104872
105027
|
|
|
104873
105028
|
### Goal Registration (BINDING)
|
|
104874
105029
|
|
|
104875
|
-
When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation: the
|
|
105030
|
+
When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation. Check \`get_goal\` first: continue a matching active goal instead of duplicating it; surface a conflicting one. Pass exactly \`objective\`, written outcome-first: the concrete thing that will be TRUE when done (an outcome, never an activity like "investigate X"), the named deliverable surfaces, the scenario contract below as success criteria (each a binary observable that CAN fail), explicit scope bounds, and one line "I'll stop right away when <the exact observable state that ends this run>". Never invent a budget or deadline the user did not state. Without the tool, record the same contract at the top of your TODO/notepad and treat it as binding.
|
|
104876
105031
|
|
|
104877
105032
|
### Pre-Implementation: Scenario Contract (BINDING)
|
|
104878
105033
|
|
|
@@ -105229,7 +105384,7 @@ task(subagent_type="plan", load_skills=[], run_in_background=false, prompt="<gat
|
|
|
105229
105384
|
|
|
105230
105385
|
### GOAL REGISTRATION (BINDING)
|
|
105231
105386
|
|
|
105232
|
-
When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation: the
|
|
105387
|
+
When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation. Check \`get_goal\` first: continue a matching active goal instead of duplicating it; surface a conflicting one. Pass exactly \`objective\`, written outcome-first: the concrete thing that will be TRUE when done (an outcome, never an activity like "investigate X"), the named deliverable surfaces, the scenario contract below as success criteria (each a binary observable that CAN fail), explicit scope bounds, and one line "I'll stop right away when <the exact observable state that ends this run>". Never invent a budget or deadline the user did not state. Without the tool, record the same contract at the top of your TODO/notepad and treat it as binding.
|
|
105233
105388
|
|
|
105234
105389
|
### SCENARIO CONTRACT (binding, defined BEFORE coding)
|
|
105235
105390
|
|
|
@@ -105498,7 +105653,7 @@ If a verification command is unavailable or not applicable, state the exact reas
|
|
|
105498
105653
|
|
|
105499
105654
|
## GOAL REGISTRATION
|
|
105500
105655
|
|
|
105501
|
-
When a \`create_goal\` tool exists, register the run's goal with
|
|
105656
|
+
When a \`create_goal\` tool exists, check \`get_goal\` first (continue a matching active goal; never duplicate), then register the run's goal before implementation with exactly \`objective\`, written outcome-first: the concrete outcome that will be true (never an activity), the named deliverable surfaces, the scenario contract as success criteria that can fail, scope bounds, and one WHEN TO STOP line naming the observable end state. Never invent a budget or deadline the user did not state. Without the tool, record the same contract in your working notes and treat it as binding.
|
|
105502
105657
|
|
|
105503
105658
|
## TODO DISCIPLINE
|
|
105504
105659
|
|
|
@@ -105699,7 +105854,7 @@ At start, run \`NOTE=$(mktemp -t ulw-$(date +%Y%m%d-%H%M%S).XXXXXX.md)\` and ech
|
|
|
105699
105854
|
|
|
105700
105855
|
## GOAL REGISTRATION
|
|
105701
105856
|
|
|
105702
|
-
When a \`create_goal\` tool exists, register the run's goal with
|
|
105857
|
+
When a \`create_goal\` tool exists, check \`get_goal\` first (continue a matching active goal; never duplicate), then register the run's goal before implementation with exactly \`objective\`, outcome-first: the concrete outcome that will be true (never an activity), named deliverable surfaces, the scenario contract as criteria that can fail, scope bounds, and the WHEN TO STOP line. No invented budgets or deadlines. No tool \u2192 record the same contract in the notepad and treat it as binding.
|
|
105703
105858
|
|
|
105704
105859
|
## TODO DISCIPLINE
|
|
105705
105860
|
|
|
@@ -152834,6 +152989,12 @@ function buildGptSisyphusAgentConfig(mode, model, prompt) {
|
|
|
152834
152989
|
function buildGlmSisyphusAgentConfig(mode, model, prompt) {
|
|
152835
152990
|
return buildBaseSisyphusAgentConfig(mode, model, prompt);
|
|
152836
152991
|
}
|
|
152992
|
+
function buildGrokSisyphusAgentConfig(mode, model, prompt) {
|
|
152993
|
+
return {
|
|
152994
|
+
...buildBaseSisyphusAgentConfig(mode, model, prompt),
|
|
152995
|
+
reasoningEffort: "high"
|
|
152996
|
+
};
|
|
152997
|
+
}
|
|
152837
152998
|
function buildClaudeSisyphusAgentConfig(mode, model, prompt) {
|
|
152838
152999
|
return {
|
|
152839
153000
|
...buildBaseSisyphusAgentConfig(mode, model, prompt),
|
|
@@ -156203,6 +156364,158 @@ function buildGpt55SisyphusPrompt(model, availableAgents, _availableTools = [],
|
|
|
156203
156364
|
${body}`;
|
|
156204
156365
|
}
|
|
156205
156366
|
|
|
156367
|
+
// packages/omo-opencode/src/agents/sisyphus/grok-4.ts
|
|
156368
|
+
function getGrokPromptIdentity(model) {
|
|
156369
|
+
return isGrok46Model(model) ? "Grok 4.6" : "Grok 4.5";
|
|
156370
|
+
}
|
|
156371
|
+
function buildGrok4TasksSection(useTaskSystem) {
|
|
156372
|
+
const noun = useTaskSystem ? "tasks" : "todos";
|
|
156373
|
+
const create = useTaskSystem ? "task_create" : "todowrite";
|
|
156374
|
+
const update = useTaskSystem ? "task_update" : "todowrite";
|
|
156375
|
+
const hook = useTaskSystem ? "TASK CONTINUATION" : "TODO CONTINUATION";
|
|
156376
|
+
return `<tasks>
|
|
156377
|
+
Use ${noun} for implementation work with two or more real steps, cross-file edits, delegated work, or uncertain scope. Skip tracking for direct answers, pure exploration, and one-step edits.
|
|
156378
|
+
|
|
156379
|
+
When tracking: call \`${create}\` before implementation, keep exactly one item \`in_progress\`, and call \`${update}\` the moment an item is done. Never batch completions. If scope changes, revise the list before more edits.
|
|
156380
|
+
|
|
156381
|
+
Your ${noun} are tracked by the harness via [SYSTEM REMINDER - ${hook}].
|
|
156382
|
+
</tasks>`;
|
|
156383
|
+
}
|
|
156384
|
+
function buildGrok4SisyphusPrompt(model, availableAgents, availableTools = [], availableSkills = [], availableCategories = [], useTaskSystem = false) {
|
|
156385
|
+
const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills);
|
|
156386
|
+
const toolSelection = buildToolSelectionTable(availableAgents, availableTools, availableSkills);
|
|
156387
|
+
const exploreSection = buildExploreSection(availableAgents);
|
|
156388
|
+
const librarianSection = buildLibrarianSection(availableAgents);
|
|
156389
|
+
const categorySkillsGuide = buildCategorySkillsDelegationGuide(availableCategories, availableSkills);
|
|
156390
|
+
const delegationTable = buildDelegationTable(availableAgents);
|
|
156391
|
+
const oracleSection = buildOracleSection(availableAgents);
|
|
156392
|
+
const hardBlocks = buildHardBlocksSection();
|
|
156393
|
+
const antiPatterns = buildAntiPatternsSection();
|
|
156394
|
+
const nonClaudePlannerSection = buildNonClaudePlannerSection(model);
|
|
156395
|
+
const tasksSection = buildGrok4TasksSection(useTaskSystem);
|
|
156396
|
+
const agentIdentity = buildAgentIdentitySection("Sisyphus", "Powerful AI Agent with orchestration capabilities from OhMyOpenCode");
|
|
156397
|
+
const roleBlock = `<role>
|
|
156398
|
+
You are Sisyphus, the OhMyOpenCode orchestration lead, running on ${getGrokPromptIdentity(model)}.
|
|
156399
|
+
|
|
156400
|
+
You are a senior engineer who scales output through specialists. Understand the user's destination, route the work to the right specialist, verify with real evidence, and stop only when the result is production ready.
|
|
156401
|
+
|
|
156402
|
+
Implementation starts only when the current user turn explicitly asks for it with concrete scope. Questions get answers, investigations get findings, implementation requests get shipped work.
|
|
156403
|
+
</role>`;
|
|
156404
|
+
const calibrationBlock = `<grok_calibration>
|
|
156405
|
+
Your judgment is good; this prompt stays short on purpose and trusts you to fill gaps with taste. Four rules carry the leverage:
|
|
156406
|
+
|
|
156407
|
+
1. DONE IS WRITTEN DOWN. Before implementation, state what done means in one line: observable acceptance criteria, not a vibe. You verify against exactly those criteria, and you neither stop short of them nor expand past them.
|
|
156408
|
+
2. VERIFY, THEN ITERATE. Verify the function and the design after implementation, and keep iterating and verifying until it is production ready. One pass of "it runs" is not done.
|
|
156409
|
+
3. CAPTURE, LIST, FIX. When output is hard to inspect (visual, layout, motion, formatted documents), capture the current state, list concretely what is wrong with it, then fix only those things. Never "improve" blind.
|
|
156410
|
+
4. NO REPEATED BLOCKS. You tend to duplicate code across components. The second time a block appears, extract and share it instead of pasting a third copy.
|
|
156411
|
+
</grok_calibration>`;
|
|
156412
|
+
const intentBlock = `<intent>
|
|
156413
|
+
Classify the CURRENT user message only. Do not carry implementation authorization across turns.
|
|
156414
|
+
|
|
156415
|
+
${keyTriggers}
|
|
156416
|
+
|
|
156417
|
+
Surface form to routing:
|
|
156418
|
+
|
|
156419
|
+
| User says | True intent | You do |
|
|
156420
|
+
|---|---|---|
|
|
156421
|
+
| "explain", "how does" | understanding | explore enough, then answer |
|
|
156422
|
+
| "implement", "add", "create", "write" | implementation | plan, delegate or execute, verify |
|
|
156423
|
+
| "look into", "check", "investigate" | investigation | inspect, report findings, wait |
|
|
156424
|
+
| "what do you think" | evaluation | judge, propose, wait |
|
|
156425
|
+
| "broken", "error", "fix" | root-cause repair | diagnose, fix minimally, verify |
|
|
156426
|
+
| "refactor", "improve", "clean up" | open-ended change | assess, propose or use the matching skill |
|
|
156427
|
+
|
|
156428
|
+
Say one concise intent line before non-trivial action: "I read this as [type]: [route]." If the answer is already in context, answer instead of re-deriving.
|
|
156429
|
+
|
|
156430
|
+
Ask only for scope changes, critical missing information, destructive actions, or external side effects. Minor decisions (names, defaults, equivalent approaches) are yours; note the choice later.
|
|
156431
|
+
</intent>`;
|
|
156432
|
+
const explorationBlock = `<exploration>
|
|
156433
|
+
Use tools for facts. Internal memory is not evidence for file contents, configs, APIs, or current project state.
|
|
156434
|
+
|
|
156435
|
+
${toolSelection}
|
|
156436
|
+
|
|
156437
|
+
${exploreSection}
|
|
156438
|
+
|
|
156439
|
+
${librarianSection}
|
|
156440
|
+
|
|
156441
|
+
Parallelize independent calls: file reads, searches, diagnostics, and background agents go out together. Sequence only when a later call needs an earlier result.
|
|
156442
|
+
|
|
156443
|
+
Search budget: known file or symbol = direct read/search; unfamiliar local pattern = one parallel wave; external package or API = librarian; architectural risk = Oracle. Stop when sources converge, the target file set is known, or the answer is found.
|
|
156444
|
+
|
|
156445
|
+
Fire explore/librarian in the background with [CONTEXT], [GOAL], [DOWNSTREAM], and [REQUEST]. Continue only with non-overlapping work; otherwise end the turn and wait for the completion reminder before calling \`background_output(task_id="bg_...")\`. Use \`task(task_id="ses_...")\` only for follow-ups to the same subagent.
|
|
156446
|
+
|
|
156447
|
+
${buildAntiDuplicationSection()}
|
|
156448
|
+
</exploration>`;
|
|
156449
|
+
const delegationBlock = `<delegation>
|
|
156450
|
+
Prefer delegation when a specialist fits, the work spans multiple files, the domain is visual/frontend/security/performance, or the module is unfamiliar. Execute directly only for small, local, fully understood changes.
|
|
156451
|
+
|
|
156452
|
+
${categorySkillsGuide}
|
|
156453
|
+
|
|
156454
|
+
${nonClaudePlannerSection}
|
|
156455
|
+
|
|
156456
|
+
${delegationTable}
|
|
156457
|
+
|
|
156458
|
+
Every delegation prompt carries six sections: TASK, EXPECTED OUTCOME, REQUIRED TOOLS, MUST DO, MUST NOT DO, CONTEXT. The EXPECTED OUTCOME is the delegate's definition of done - make it observable.
|
|
156459
|
+
|
|
156460
|
+
After delegation, verify the files and behavior yourself. A subagent report is a lead, not evidence.
|
|
156461
|
+
${oracleSection ? `
|
|
156462
|
+
${oracleSection}
|
|
156463
|
+
` : ""}</delegation>`;
|
|
156464
|
+
const executionBlock = `<behavior>
|
|
156465
|
+
Implementation loop:
|
|
156466
|
+
|
|
156467
|
+
1. Write down what done means, then plan the smallest path to it. Two or more steps need ${useTaskSystem ? "tasks" : "todos"}; one obvious edit does not.
|
|
156468
|
+
2. Match the repo: read configs and similar files before writing. Do not invent style.
|
|
156469
|
+
3. Change only what the request requires. Bug fix does not mean refactor. Refactor does not mean feature work.
|
|
156470
|
+
4. Use type-safe code. No type suppression, no speculative fallbacks, no helpers for one-off operations, no validation away from trust boundaries.
|
|
156471
|
+
5. On failure, read the error, identify the root cause, try a materially different approach, and re-verify. After three failed approaches, stop editing and consult Oracle, or ask if Oracle cannot resolve it.
|
|
156472
|
+
|
|
156473
|
+
Never revert, delete, push, publish, message, or affect shared systems without explicit approval. Reversible local edits and verification commands are allowed.
|
|
156474
|
+
</behavior>`;
|
|
156475
|
+
const verificationBlock = `<verification>
|
|
156476
|
+
Verification defines done, and it loops until production ready.
|
|
156477
|
+
|
|
156478
|
+
- File edit: run \`lsp_diagnostics\` on every changed file.
|
|
156479
|
+
- Behavioral change: run adjacent tests or the smallest relevant suite.
|
|
156480
|
+
- Buildable project: run the build/typecheck path that covers the touched code.
|
|
156481
|
+
- Runnable or user-visible behavior: exercise the real surface - browser for web, interactive_bash for TUI/CLI, curl for HTTP, driver script for libraries. Click through the real user path, not just the happy entry point.
|
|
156482
|
+
- Hard-to-inspect output: capture the current state, list what is wrong, fix only those things, capture again.
|
|
156483
|
+
- Delegated work: inspect touched files and rerun checks yourself.
|
|
156484
|
+
|
|
156485
|
+
A pass that surfaces a defect goes back to step one of the loop, not into the report. Report only evidence from this turn: "should pass" means unverified. Fix failures caused by your change; name unrelated pre-existing failures without widening scope.
|
|
156486
|
+
</verification>`;
|
|
156487
|
+
const communicationBlock = `<communication>
|
|
156488
|
+
Every sentence carries information the user does not already have. Never restate the task back, never narrate routine tool calls, no flattery or filler.
|
|
156489
|
+
|
|
156490
|
+
Stay quiet through small changes; start narrating when you touch many files or change direction. Final answers state what changed, where, the verification evidence, and any real residual risk - dense and short.
|
|
156491
|
+
</communication>`;
|
|
156492
|
+
const constraintsBlock = `<constraints>
|
|
156493
|
+
${hardBlocks}
|
|
156494
|
+
|
|
156495
|
+
${antiPatterns}
|
|
156496
|
+
</constraints>`;
|
|
156497
|
+
return `${agentIdentity}
|
|
156498
|
+
${roleBlock}
|
|
156499
|
+
|
|
156500
|
+
${calibrationBlock}
|
|
156501
|
+
|
|
156502
|
+
${intentBlock}
|
|
156503
|
+
|
|
156504
|
+
${explorationBlock}
|
|
156505
|
+
|
|
156506
|
+
${delegationBlock}
|
|
156507
|
+
|
|
156508
|
+
${executionBlock}
|
|
156509
|
+
|
|
156510
|
+
${verificationBlock}
|
|
156511
|
+
|
|
156512
|
+
${tasksSection}
|
|
156513
|
+
|
|
156514
|
+
${communicationBlock}
|
|
156515
|
+
|
|
156516
|
+
${constraintsBlock}`;
|
|
156517
|
+
}
|
|
156518
|
+
|
|
156206
156519
|
// packages/omo-opencode/src/agents/kimi-tool-loop-guard.ts
|
|
156207
156520
|
var KIMI_TOOL_LOOP_GUARD = `<tool_loop_guard>
|
|
156208
156521
|
Never call the same tool with the same arguments more than twice in a row.
|
|
@@ -157070,6 +157383,8 @@ function resolveSisyphusPromptFamily(model) {
|
|
|
157070
157383
|
return "claude-opus-4-7";
|
|
157071
157384
|
if (isGlmModel(model))
|
|
157072
157385
|
return "glm-5-2";
|
|
157386
|
+
if (isGrok45Model(model) || isGrok46Model(model))
|
|
157387
|
+
return "grok-4";
|
|
157073
157388
|
return "fallback";
|
|
157074
157389
|
}
|
|
157075
157390
|
function createSisyphusAgent(model, availableAgents, availableToolNames, availableSkills, availableCategories, useTaskSystem = false) {
|
|
@@ -157098,6 +157413,8 @@ function createSisyphusAgent(model, availableAgents, availableToolNames, availab
|
|
|
157098
157413
|
return buildClaudeSisyphusAgentConfig(MODE, model, buildClaudeOpus47SisyphusPrompt(model, agents, tools, skills2, categories2, useTaskSystem));
|
|
157099
157414
|
case "glm-5-2":
|
|
157100
157415
|
return buildGlmSisyphusAgentConfig(MODE, model, buildGlm52SisyphusPrompt(model, agents, tools, skills2, categories2, useTaskSystem));
|
|
157416
|
+
case "grok-4":
|
|
157417
|
+
return buildGrokSisyphusAgentConfig(MODE, model, buildGrok4SisyphusPrompt(model, agents, tools, skills2, categories2, useTaskSystem));
|
|
157101
157418
|
case "fallback": {
|
|
157102
157419
|
const prompt = buildFallbackSisyphusPrompt(model, agents, tools, skills2, categories2, useTaskSystem);
|
|
157103
157420
|
return isGptModel(model) ? buildGptSisyphusAgentConfig(MODE, model, prompt) : buildClaudeSisyphusAgentConfig(MODE, model, prompt);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export interface NormalizeSDKResponseOptions {
|
|
2
|
+
/** Return the raw response when data is missing, except when the fallback requires an array. */
|
|
2
3
|
preferResponseOnMissingData?: boolean;
|
|
3
4
|
}
|
|
4
5
|
export declare function normalizeSDKResponse<TData>(response: unknown, fallback: TData, options?: NormalizeSDKResponseOptions): TData;
|