oh-my-opencode 5.0.0-beta.6 → 5.0.0-beta.7

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.
Files changed (69) hide show
  1. package/README.md +12 -1
  2. package/dist/cli/index.js +274 -190
  3. package/dist/cli-node/index.js +274 -190
  4. package/dist/index.js +95 -22
  5. package/dist/tui.js +77 -4
  6. package/package.json +14 -14
  7. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  8. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  9. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  10. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +76 -3
  11. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +76 -3
  12. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  14. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  16. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  18. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  20. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  21. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  23. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  25. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  29. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/ultrawork/directive.md +6 -0
  31. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +6 -0
  34. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +6 -0
  35. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  36. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +3 -2
  38. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +106 -0
  39. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
  40. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  63. package/packages/omo-codex/plugin/package-lock.json +13 -13
  64. package/packages/omo-codex/plugin/package.json +1 -1
  65. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +6 -0
  66. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
  67. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +106 -0
  68. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
  69. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
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(0),
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
- trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 0, on_compaction: true }),
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
- trigger: { step_count: 0, on_compaction: true },
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(),
@@ -98571,7 +98644,7 @@ function getCachedVersion(options = {}) {
98571
98644
  // package.json
98572
98645
  var package_default = {
98573
98646
  name: "oh-my-opencode",
98574
- version: "5.0.0-beta.6",
98647
+ version: "5.0.0-beta.7",
98575
98648
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
98576
98649
  main: "./dist/index.js",
98577
98650
  types: "dist/index.d.ts",
@@ -98751,7 +98824,7 @@ var package_default = {
98751
98824
  zod: "^4.4.3"
98752
98825
  },
98753
98826
  devDependencies: {
98754
- "@code-yeongyu/senpi": "2026.8.11-4",
98827
+ "@code-yeongyu/senpi": "2026.8.12-4",
98755
98828
  "@oh-my-opencode/agents-md-core": "workspace:*",
98756
98829
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
98757
98830
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -98792,18 +98865,18 @@ var package_default = {
98792
98865
  typescript: "^7.0.2"
98793
98866
  },
98794
98867
  optionalDependencies: {
98795
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.6",
98796
- "oh-my-opencode-darwin-x64": "5.0.0-beta.6",
98797
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.6",
98798
- "oh-my-opencode-linux-arm64": "5.0.0-beta.6",
98799
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.6",
98800
- "oh-my-opencode-linux-x64": "5.0.0-beta.6",
98801
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.6",
98802
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.6",
98803
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.6",
98804
- "oh-my-opencode-windows-arm64": "5.0.0-beta.6",
98805
- "oh-my-opencode-windows-x64": "5.0.0-beta.6",
98806
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.6"
98868
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.7",
98869
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.7",
98870
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.7",
98871
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.7",
98872
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.7",
98873
+ "oh-my-opencode-linux-x64": "5.0.0-beta.7",
98874
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.7",
98875
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.7",
98876
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.7",
98877
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.7",
98878
+ "oh-my-opencode-windows-x64": "5.0.0-beta.7",
98879
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.7"
98807
98880
  },
98808
98881
  overrides: {
98809
98882
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -104872,7 +104945,7 @@ task(category="quick", load_skills=["git-master"], run_in_background=true)
104872
104945
 
104873
104946
  ### Goal Registration (BINDING)
104874
104947
 
104875
- When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation: the full objective, the scenario contract below, and one line "I'll stop right away when <the exact observable state that ends this run>". Without the tool, record the same contract at the top of your TODO/notepad and treat it as binding.
104948
+ 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
104949
 
104877
104950
  ### Pre-Implementation: Scenario Contract (BINDING)
104878
104951
 
@@ -105229,7 +105302,7 @@ task(subagent_type="plan", load_skills=[], run_in_background=false, prompt="<gat
105229
105302
 
105230
105303
  ### GOAL REGISTRATION (BINDING)
105231
105304
 
105232
- When the \`create_goal\` tool exists, you MUST register the run's goal with it BEFORE any implementation: the full objective, the scenario contract below, and one line "I'll stop right away when <the exact observable state that ends this run>". Without the tool, record the same contract at the top of your TODO/notepad and treat it as binding.
105305
+ 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
105306
 
105234
105307
  ### SCENARIO CONTRACT (binding, defined BEFORE coding)
105235
105308
 
@@ -105498,7 +105571,7 @@ If a verification command is unavailable or not applicable, state the exact reas
105498
105571
 
105499
105572
  ## GOAL REGISTRATION
105500
105573
 
105501
- When a \`create_goal\` tool exists, register the run's goal with it before implementation: the objective, the scenario contract, and one WHEN TO STOP line naming the observable end state. Without the tool, record the same contract in your working notes and treat it as binding.
105574
+ 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
105575
 
105503
105576
  ## TODO DISCIPLINE
105504
105577
 
@@ -105699,7 +105772,7 @@ At start, run \`NOTE=$(mktemp -t ulw-$(date +%Y%m%d-%H%M%S).XXXXXX.md)\` and ech
105699
105772
 
105700
105773
  ## GOAL REGISTRATION
105701
105774
 
105702
- When a \`create_goal\` tool exists, register the run's goal with it before implementation: the objective, the scenario contract, and the WHEN TO STOP line. No tool \u2192 record the same contract in the notepad and treat it as binding.
105775
+ 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
105776
 
105704
105777
  ## TODO DISCIPLINE
105705
105778
 
package/dist/tui.js CHANGED
@@ -18837,15 +18837,16 @@ var init_codegraph = __esm(() => {
18837
18837
  });
18838
18838
 
18839
18839
  // packages/omo-config-core/src/schema/memory.ts
18840
- var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
18840
+ var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
18841
18841
  var init_memory = __esm(() => {
18842
18842
  init_zod();
18843
18843
  OmoMemoryReflectionTriggerSchema = object({
18844
- step_count: number2().int().nonnegative().default(0),
18844
+ step_count: number2().int().nonnegative().default(25),
18845
18845
  on_compaction: boolean2().default(true)
18846
18846
  }).strict();
18847
18847
  OmoMemoryReflectionSchema = object({
18848
- trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 0, on_compaction: true }),
18848
+ enabled: boolean2().default(true),
18849
+ trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
18849
18850
  merge: _enum2(["auto", "integration"]).default("auto"),
18850
18851
  category: string2().min(1).default("quick"),
18851
18852
  timeout_minutes: number2().int().positive().default(15),
@@ -18858,11 +18859,36 @@ var init_memory = __esm(() => {
18858
18859
  OmoMemorySearchSchema = object({
18859
18860
  enabled: boolean2().default(true)
18860
18861
  }).strict();
18862
+ OmoMemoryNudgeSchema = object({
18863
+ enabled: boolean2().default(true),
18864
+ every_user_turns: number2().int().min(1).default(10)
18865
+ }).strict();
18866
+ OmoMemoryFactsSchema = object({
18867
+ enabled: boolean2().default(true),
18868
+ debounce_settles: number2().int().min(1).default(4)
18869
+ }).strict();
18870
+ OmoMemoryDreamSchema = object({
18871
+ enabled: boolean2().default(true),
18872
+ idle_minutes: number2().int().min(0).default(30),
18873
+ min_hours_between: number2().int().min(1).default(24),
18874
+ shutdown_launch: boolean2().default(true),
18875
+ auto_select_max: number2().int().min(1).max(10).default(5),
18876
+ auto_select_max_chars: number2().int().min(1e4).default(150000)
18877
+ }).strict();
18878
+ OmoMemoryPeopleSchema = object({
18879
+ enabled: boolean2().default(true),
18880
+ max_entries: number2().int().min(1).max(100).default(40),
18881
+ max_entry_chars: number2().int().min(50).max(500).default(200)
18882
+ }).strict();
18883
+ OmoMemorySoulSchema = object({
18884
+ edit_notice: boolean2().default(true)
18885
+ }).strict();
18861
18886
  OmoMemoryReflectionTriggerLayerSchema = object({
18862
18887
  step_count: number2().int().nonnegative().optional(),
18863
18888
  on_compaction: boolean2().optional()
18864
18889
  }).strict();
18865
18890
  OmoMemoryReflectionLayerSchema = object({
18891
+ enabled: boolean2().optional(),
18866
18892
  trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
18867
18893
  merge: _enum2(["auto", "integration"]).optional(),
18868
18894
  category: string2().min(1).optional(),
@@ -18876,10 +18902,39 @@ var init_memory = __esm(() => {
18876
18902
  OmoMemorySearchLayerSchema = object({
18877
18903
  enabled: boolean2().optional()
18878
18904
  }).strict();
18905
+ OmoMemoryNudgeLayerSchema = object({
18906
+ enabled: boolean2().optional(),
18907
+ every_user_turns: number2().int().min(1).optional()
18908
+ }).strict();
18909
+ OmoMemoryFactsLayerSchema = object({
18910
+ enabled: boolean2().optional(),
18911
+ debounce_settles: number2().int().min(1).optional()
18912
+ }).strict();
18913
+ OmoMemoryDreamLayerSchema = object({
18914
+ enabled: boolean2().optional(),
18915
+ idle_minutes: number2().int().min(0).optional(),
18916
+ min_hours_between: number2().int().min(1).optional(),
18917
+ shutdown_launch: boolean2().optional(),
18918
+ auto_select_max: number2().int().min(1).max(10).optional(),
18919
+ auto_select_max_chars: number2().int().min(1e4).optional()
18920
+ }).strict();
18921
+ OmoMemoryPeopleLayerSchema = object({
18922
+ enabled: boolean2().optional(),
18923
+ max_entries: number2().int().min(1).max(100).optional(),
18924
+ max_entry_chars: number2().int().min(50).max(500).optional()
18925
+ }).strict();
18926
+ OmoMemorySoulLayerSchema = object({
18927
+ edit_notice: boolean2().optional()
18928
+ }).strict();
18879
18929
  OmoMemoryAgentOverridesSchema = object({
18880
18930
  enabled: boolean2().optional(),
18881
18931
  agent: string2().min(1).optional(),
18882
18932
  reflection: OmoMemoryReflectionLayerSchema.optional(),
18933
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
18934
+ facts: OmoMemoryFactsLayerSchema.optional(),
18935
+ dream: OmoMemoryDreamLayerSchema.optional(),
18936
+ people: OmoMemoryPeopleLayerSchema.optional(),
18937
+ soul: OmoMemorySoulLayerSchema.optional(),
18883
18938
  sync: OmoMemorySyncLayerSchema.optional(),
18884
18939
  search: OmoMemorySearchLayerSchema.optional(),
18885
18940
  compile_warn_tokens: number2().int().positive().optional()
@@ -18889,12 +18944,25 @@ var init_memory = __esm(() => {
18889
18944
  agent: string2().min(1).default("auto"),
18890
18945
  tool_exposure: _enum2(["direct", "search"]).default("direct"),
18891
18946
  reflection: OmoMemoryReflectionSchema.default({
18892
- trigger: { step_count: 0, on_compaction: true },
18947
+ enabled: true,
18948
+ trigger: { step_count: 25, on_compaction: true },
18893
18949
  merge: "auto",
18894
18950
  category: "quick",
18895
18951
  timeout_minutes: 15,
18896
18952
  sandbox: "auto"
18897
18953
  }),
18954
+ nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
18955
+ facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
18956
+ dream: OmoMemoryDreamSchema.default({
18957
+ enabled: true,
18958
+ idle_minutes: 30,
18959
+ min_hours_between: 24,
18960
+ shutdown_launch: true,
18961
+ auto_select_max: 5,
18962
+ auto_select_max_chars: 150000
18963
+ }),
18964
+ people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
18965
+ soul: OmoMemorySoulSchema.default({ edit_notice: true }),
18898
18966
  sync: OmoMemorySyncSchema.default({ enabled: true }),
18899
18967
  search: OmoMemorySearchSchema.default({ enabled: true }),
18900
18968
  compile_warn_tokens: number2().int().positive().default(30000),
@@ -18905,6 +18973,11 @@ var init_memory = __esm(() => {
18905
18973
  agent: string2().min(1).optional(),
18906
18974
  tool_exposure: _enum2(["direct", "search"]).optional(),
18907
18975
  reflection: OmoMemoryReflectionLayerSchema.optional(),
18976
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
18977
+ facts: OmoMemoryFactsLayerSchema.optional(),
18978
+ dream: OmoMemoryDreamLayerSchema.optional(),
18979
+ people: OmoMemoryPeopleLayerSchema.optional(),
18980
+ soul: OmoMemorySoulLayerSchema.optional(),
18908
18981
  sync: OmoMemorySyncLayerSchema.optional(),
18909
18982
  search: OmoMemorySearchLayerSchema.optional(),
18910
18983
  compile_warn_tokens: number2().int().positive().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.0.0-beta.6",
3
+ "version": "5.0.0-beta.7",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -180,7 +180,7 @@
180
180
  "zod": "^4.4.3"
181
181
  },
182
182
  "devDependencies": {
183
- "@code-yeongyu/senpi": "2026.8.11-4",
183
+ "@code-yeongyu/senpi": "2026.8.12-4",
184
184
  "@oh-my-opencode/agents-md-core": "workspace:*",
185
185
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
186
186
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -221,18 +221,18 @@
221
221
  "typescript": "^7.0.2"
222
222
  },
223
223
  "optionalDependencies": {
224
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.6",
225
- "oh-my-opencode-darwin-x64": "5.0.0-beta.6",
226
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.6",
227
- "oh-my-opencode-linux-arm64": "5.0.0-beta.6",
228
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.6",
229
- "oh-my-opencode-linux-x64": "5.0.0-beta.6",
230
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.6",
231
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.6",
232
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.6",
233
- "oh-my-opencode-windows-arm64": "5.0.0-beta.6",
234
- "oh-my-opencode-windows-x64": "5.0.0-beta.6",
235
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.6"
224
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.7",
225
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.7",
226
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.7",
227
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.7",
228
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.7",
229
+ "oh-my-opencode-linux-x64": "5.0.0-beta.7",
230
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.7",
231
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.7",
232
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.7",
233
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.7",
234
+ "oh-my-opencode-windows-x64": "5.0.0-beta.7",
235
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.7"
236
236
  },
237
237
  "overrides": {
238
238
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.0.0-beta.6",
3
+ "version": "5.0.0-beta.7",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.0.0-beta.6) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.7) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.0.0-beta.6",
3
+ "version": "5.0.0-beta.7",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -5551,11 +5551,12 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
5551
5551
 
5552
5552
  // ../../omo-config-core/src/schema/memory.ts
5553
5553
  var OmoMemoryReflectionTriggerSchema = object({
5554
- step_count: number2().int().nonnegative().default(0),
5554
+ step_count: number2().int().nonnegative().default(25),
5555
5555
  on_compaction: boolean2().default(true)
5556
5556
  }).strict();
5557
5557
  var OmoMemoryReflectionSchema = object({
5558
- trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 0, on_compaction: true }),
5558
+ enabled: boolean2().default(true),
5559
+ trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
5559
5560
  merge: _enum(["auto", "integration"]).default("auto"),
5560
5561
  category: string2().min(1).default("quick"),
5561
5562
  timeout_minutes: number2().int().positive().default(15),
@@ -5568,11 +5569,36 @@ var OmoMemorySyncSchema = object({
5568
5569
  var OmoMemorySearchSchema = object({
5569
5570
  enabled: boolean2().default(true)
5570
5571
  }).strict();
5572
+ var OmoMemoryNudgeSchema = object({
5573
+ enabled: boolean2().default(true),
5574
+ every_user_turns: number2().int().min(1).default(10)
5575
+ }).strict();
5576
+ var OmoMemoryFactsSchema = object({
5577
+ enabled: boolean2().default(true),
5578
+ debounce_settles: number2().int().min(1).default(4)
5579
+ }).strict();
5580
+ var OmoMemoryDreamSchema = object({
5581
+ enabled: boolean2().default(true),
5582
+ idle_minutes: number2().int().min(0).default(30),
5583
+ min_hours_between: number2().int().min(1).default(24),
5584
+ shutdown_launch: boolean2().default(true),
5585
+ auto_select_max: number2().int().min(1).max(10).default(5),
5586
+ auto_select_max_chars: number2().int().min(1e4).default(150000)
5587
+ }).strict();
5588
+ var OmoMemoryPeopleSchema = object({
5589
+ enabled: boolean2().default(true),
5590
+ max_entries: number2().int().min(1).max(100).default(40),
5591
+ max_entry_chars: number2().int().min(50).max(500).default(200)
5592
+ }).strict();
5593
+ var OmoMemorySoulSchema = object({
5594
+ edit_notice: boolean2().default(true)
5595
+ }).strict();
5571
5596
  var OmoMemoryReflectionTriggerLayerSchema = object({
5572
5597
  step_count: number2().int().nonnegative().optional(),
5573
5598
  on_compaction: boolean2().optional()
5574
5599
  }).strict();
5575
5600
  var OmoMemoryReflectionLayerSchema = object({
5601
+ enabled: boolean2().optional(),
5576
5602
  trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
5577
5603
  merge: _enum(["auto", "integration"]).optional(),
5578
5604
  category: string2().min(1).optional(),
@@ -5586,10 +5612,39 @@ var OmoMemorySyncLayerSchema = object({
5586
5612
  var OmoMemorySearchLayerSchema = object({
5587
5613
  enabled: boolean2().optional()
5588
5614
  }).strict();
5615
+ var OmoMemoryNudgeLayerSchema = object({
5616
+ enabled: boolean2().optional(),
5617
+ every_user_turns: number2().int().min(1).optional()
5618
+ }).strict();
5619
+ var OmoMemoryFactsLayerSchema = object({
5620
+ enabled: boolean2().optional(),
5621
+ debounce_settles: number2().int().min(1).optional()
5622
+ }).strict();
5623
+ var OmoMemoryDreamLayerSchema = object({
5624
+ enabled: boolean2().optional(),
5625
+ idle_minutes: number2().int().min(0).optional(),
5626
+ min_hours_between: number2().int().min(1).optional(),
5627
+ shutdown_launch: boolean2().optional(),
5628
+ auto_select_max: number2().int().min(1).max(10).optional(),
5629
+ auto_select_max_chars: number2().int().min(1e4).optional()
5630
+ }).strict();
5631
+ var OmoMemoryPeopleLayerSchema = object({
5632
+ enabled: boolean2().optional(),
5633
+ max_entries: number2().int().min(1).max(100).optional(),
5634
+ max_entry_chars: number2().int().min(50).max(500).optional()
5635
+ }).strict();
5636
+ var OmoMemorySoulLayerSchema = object({
5637
+ edit_notice: boolean2().optional()
5638
+ }).strict();
5589
5639
  var OmoMemoryAgentOverridesSchema = object({
5590
5640
  enabled: boolean2().optional(),
5591
5641
  agent: string2().min(1).optional(),
5592
5642
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5643
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5644
+ facts: OmoMemoryFactsLayerSchema.optional(),
5645
+ dream: OmoMemoryDreamLayerSchema.optional(),
5646
+ people: OmoMemoryPeopleLayerSchema.optional(),
5647
+ soul: OmoMemorySoulLayerSchema.optional(),
5593
5648
  sync: OmoMemorySyncLayerSchema.optional(),
5594
5649
  search: OmoMemorySearchLayerSchema.optional(),
5595
5650
  compile_warn_tokens: number2().int().positive().optional()
@@ -5599,12 +5654,25 @@ var OmoMemorySettingsSchema = object({
5599
5654
  agent: string2().min(1).default("auto"),
5600
5655
  tool_exposure: _enum(["direct", "search"]).default("direct"),
5601
5656
  reflection: OmoMemoryReflectionSchema.default({
5602
- trigger: { step_count: 0, on_compaction: true },
5657
+ enabled: true,
5658
+ trigger: { step_count: 25, on_compaction: true },
5603
5659
  merge: "auto",
5604
5660
  category: "quick",
5605
5661
  timeout_minutes: 15,
5606
5662
  sandbox: "auto"
5607
5663
  }),
5664
+ nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
5665
+ facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
5666
+ dream: OmoMemoryDreamSchema.default({
5667
+ enabled: true,
5668
+ idle_minutes: 30,
5669
+ min_hours_between: 24,
5670
+ shutdown_launch: true,
5671
+ auto_select_max: 5,
5672
+ auto_select_max_chars: 150000
5673
+ }),
5674
+ people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
5675
+ soul: OmoMemorySoulSchema.default({ edit_notice: true }),
5608
5676
  sync: OmoMemorySyncSchema.default({ enabled: true }),
5609
5677
  search: OmoMemorySearchSchema.default({ enabled: true }),
5610
5678
  compile_warn_tokens: number2().int().positive().default(30000),
@@ -5615,6 +5683,11 @@ var OmoMemorySettingsLayerSchema = object({
5615
5683
  agent: string2().min(1).optional(),
5616
5684
  tool_exposure: _enum(["direct", "search"]).optional(),
5617
5685
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5686
+ nudge: OmoMemoryNudgeLayerSchema.optional(),
5687
+ facts: OmoMemoryFactsLayerSchema.optional(),
5688
+ dream: OmoMemoryDreamLayerSchema.optional(),
5689
+ people: OmoMemoryPeopleLayerSchema.optional(),
5690
+ soul: OmoMemorySoulLayerSchema.optional(),
5618
5691
  sync: OmoMemorySyncLayerSchema.optional(),
5619
5692
  search: OmoMemorySearchLayerSchema.optional(),
5620
5693
  compile_warn_tokens: number2().int().positive().optional(),