lazycodex-ai 5.1.54 → 5.1.56

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 (71) hide show
  1. package/dist/cli/index.js +29 -18
  2. package/dist/cli-node/index.js +29 -18
  3. package/package.json +2 -1
  4. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  5. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -0
  6. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  7. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  8. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  9. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  10. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  11. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  12. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  13. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  14. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  15. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  16. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  18. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  22. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  23. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  24. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  25. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  26. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  27. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  28. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  29. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  30. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  31. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  32. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  33. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  50. package/packages/omo-codex/plugin/package-lock.json +12 -12
  51. package/packages/omo-codex/plugin/package.json +1 -1
  52. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  53. package/packages/omo-codex/plugin/skills/programming/SKILL.md +2 -0
  54. package/packages/omo-codex/plugin/skills/programming/references/testing/README.md +2 -2
  55. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-test-junk-rules.ts +140 -0
  56. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-test-junk.ts +148 -0
  57. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/mutation-proof.ts +179 -0
  58. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +32 -20
  59. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +3 -1
  60. package/packages/omo-codex/scripts/install-dist/install-local.mjs +4 -2
  61. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  62. package/packages/shared-skills/skills/programming/SKILL.md +2 -0
  63. package/packages/shared-skills/skills/programming/references/testing/README.md +2 -2
  64. package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk-rules.ts +140 -0
  65. package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk.test.ts +125 -0
  66. package/packages/shared-skills/skills/programming/scripts/typescript/check-test-junk.ts +148 -0
  67. package/packages/shared-skills/skills/programming/scripts/typescript/mutation-proof.test.ts +43 -0
  68. package/packages/shared-skills/skills/programming/scripts/typescript/mutation-proof.ts +179 -0
  69. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +32 -20
  70. package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +3 -1
  71. package/packages/shared-skills/skills/ulw-research/scripts/source-integrity.test.ts +39 -2
package/dist/cli/index.js CHANGED
@@ -2132,7 +2132,7 @@ var package_default;
2132
2132
  var init_package = __esm(() => {
2133
2133
  package_default = {
2134
2134
  name: "oh-my-opencode",
2135
- version: "5.1.54",
2135
+ version: "5.1.56",
2136
2136
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2137
2137
  main: "./dist/index.js",
2138
2138
  types: "dist/index.d.ts",
@@ -2156,6 +2156,7 @@ var init_package = __esm(() => {
2156
2156
  "packages/openclaw-core",
2157
2157
  "packages/boulder-state",
2158
2158
  "packages/memory-core",
2159
+ "packages/device-service-core",
2159
2160
  "packages/isolation-core",
2160
2161
  "packages/telemetry-core",
2161
2162
  "packages/claude-code-compat-core",
@@ -2276,7 +2277,7 @@ var init_package = __esm(() => {
2276
2277
  "check:copy": "bun script/check-copy.ts",
2277
2278
  typecheck: "bun run check:copy && bun check --no-script --all -p tsconfig.json && bun run typecheck:script && bun run typecheck:packages && bun run typecheck:skill-scripts",
2278
2279
  "typecheck:skill-scripts": "bun check --no-script --all -p packages/shared-skills/skills/frontend/scripts/detect/tsconfig.json",
2279
- "typecheck:packages": "bun check --no-script --all -p packages/rules-engine/tsconfig.json && bun check --no-script --all -p packages/delegate-core/tsconfig.json && bun check --no-script --all -p packages/mcp-stdio-core/tsconfig.json && bun check --no-script --all -p packages/mcp-client-core/tsconfig.json && bun check --no-script --all -p packages/git-bash-mcp/tsconfig.json && bun check --no-script --all -p packages/ast-grep-mcp/tsconfig.json && bun check --no-script --all -p packages/lsp-core/tsconfig.json && bun check --no-script --all -p packages/utils/tsconfig.json && bun check --no-script --all -p packages/model-core/tsconfig.json && bun check --no-script --all -p packages/omo-config-core/tsconfig.json && bun check --no-script --all -p packages/prompts-core/tsconfig.json && bun check --no-script --all -p packages/comment-checker-core/tsconfig.json && bun check --no-script --all -p packages/hashline-core/tsconfig.json && bun check --no-script --all -p packages/tmux-core/tsconfig.json && bun check --no-script --all -p packages/team-core/tsconfig.json && bun check --no-script --all -p packages/openclaw-core/tsconfig.json && bun check --no-script --all -p packages/boulder-state/tsconfig.json && bun check --no-script --all -p packages/isolation-core/tsconfig.json && bun check --no-script --all -p packages/memory-core/tsconfig.json && bun check --no-script --all -p packages/telemetry-core/tsconfig.json && bun check --no-script --all -p packages/claude-code-compat-core/tsconfig.json && bun check --no-script --all -p packages/skills-loader-core/tsconfig.json && bun check --no-script --all -p packages/agents-md-core/tsconfig.json && bun check --no-script --all -p packages/omo-codex/plugin/shared/tsconfig.json && bun check --no-script --all -p packages/omo-codex/tsconfig.json && bun check --no-script --all -p packages/omo-senpi/tsconfig.json && bun check --no-script --all -p packages/senpi-task/tsconfig.json && bun check --no-script --all -p packages/omo-opencode/tsconfig.json && bun check --no-script --all -p packages/omo-native/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-protocol/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-engine/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-prelude/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-service/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-tool/tsconfig.json",
2280
+ "typecheck:packages": "bun check --no-script --all -p packages/rules-engine/tsconfig.json && bun check --no-script --all -p packages/delegate-core/tsconfig.json && bun check --no-script --all -p packages/mcp-stdio-core/tsconfig.json && bun check --no-script --all -p packages/mcp-client-core/tsconfig.json && bun check --no-script --all -p packages/git-bash-mcp/tsconfig.json && bun check --no-script --all -p packages/ast-grep-mcp/tsconfig.json && bun check --no-script --all -p packages/lsp-core/tsconfig.json && bun check --no-script --all -p packages/utils/tsconfig.json && bun check --no-script --all -p packages/device-service-core/tsconfig.json && bun check --no-script --all -p packages/model-core/tsconfig.json && bun check --no-script --all -p packages/omo-config-core/tsconfig.json && bun check --no-script --all -p packages/prompts-core/tsconfig.json && bun check --no-script --all -p packages/comment-checker-core/tsconfig.json && bun check --no-script --all -p packages/hashline-core/tsconfig.json && bun check --no-script --all -p packages/tmux-core/tsconfig.json && bun check --no-script --all -p packages/team-core/tsconfig.json && bun check --no-script --all -p packages/openclaw-core/tsconfig.json && bun check --no-script --all -p packages/boulder-state/tsconfig.json && bun check --no-script --all -p packages/isolation-core/tsconfig.json && bun check --no-script --all -p packages/memory-core/tsconfig.json && bun check --no-script --all -p packages/telemetry-core/tsconfig.json && bun check --no-script --all -p packages/claude-code-compat-core/tsconfig.json && bun check --no-script --all -p packages/skills-loader-core/tsconfig.json && bun check --no-script --all -p packages/agents-md-core/tsconfig.json && bun check --no-script --all -p packages/omo-codex/plugin/shared/tsconfig.json && bun check --no-script --all -p packages/omo-codex/tsconfig.json && bun check --no-script --all -p packages/omo-senpi/tsconfig.json && bun check --no-script --all -p packages/senpi-task/tsconfig.json && bun check --no-script --all -p packages/omo-opencode/tsconfig.json && bun check --no-script --all -p packages/omo-native/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-protocol/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-engine/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-prelude/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-service/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-tool/tsconfig.json",
2280
2281
  "typecheck:script": "bun check --no-script --all -p script/tsconfig.json",
2281
2282
  test: "bun test --timeout 20000",
2282
2283
  "changelog:section": "bun script/changelog-section.ts",
@@ -2323,6 +2324,7 @@ var init_package = __esm(() => {
2323
2324
  "@oh-my-opencode/agents-md-core": "workspace:*",
2324
2325
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2325
2326
  "@oh-my-opencode/boulder-state": "workspace:*",
2327
+ "@oh-my-opencode/device-service-core": "workspace:*",
2326
2328
  "@oh-my-opencode/claude-code-compat-core": "workspace:*",
2327
2329
  "@oh-my-opencode/comment-checker-core": "workspace:*",
2328
2330
  "@oh-my-opencode/delegate-core": "workspace:*",
@@ -2382,18 +2384,18 @@ var init_package = __esm(() => {
2382
2384
  typescript: "^7.0.2"
2383
2385
  },
2384
2386
  optionalDependencies: {
2385
- "oh-my-opencode-darwin-arm64": "5.1.54",
2386
- "oh-my-opencode-darwin-x64": "5.1.54",
2387
- "oh-my-opencode-darwin-x64-baseline": "5.1.54",
2388
- "oh-my-opencode-linux-arm64": "5.1.54",
2389
- "oh-my-opencode-linux-arm64-musl": "5.1.54",
2390
- "oh-my-opencode-linux-x64": "5.1.54",
2391
- "oh-my-opencode-linux-x64-baseline": "5.1.54",
2392
- "oh-my-opencode-linux-x64-musl": "5.1.54",
2393
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.54",
2394
- "oh-my-opencode-windows-arm64": "5.1.54",
2395
- "oh-my-opencode-windows-x64": "5.1.54",
2396
- "oh-my-opencode-windows-x64-baseline": "5.1.54"
2387
+ "oh-my-opencode-darwin-arm64": "5.1.56",
2388
+ "oh-my-opencode-darwin-x64": "5.1.56",
2389
+ "oh-my-opencode-darwin-x64-baseline": "5.1.56",
2390
+ "oh-my-opencode-linux-arm64": "5.1.56",
2391
+ "oh-my-opencode-linux-arm64-musl": "5.1.56",
2392
+ "oh-my-opencode-linux-x64": "5.1.56",
2393
+ "oh-my-opencode-linux-x64-baseline": "5.1.56",
2394
+ "oh-my-opencode-linux-x64-musl": "5.1.56",
2395
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.56",
2396
+ "oh-my-opencode-windows-arm64": "5.1.56",
2397
+ "oh-my-opencode-windows-x64": "5.1.56",
2398
+ "oh-my-opencode-windows-x64-baseline": "5.1.56"
2397
2399
  },
2398
2400
  overrides: {
2399
2401
  hono: "^4.13.8",
@@ -76953,6 +76955,7 @@ var init_agent = __esm(() => {
76953
76955
  prompt: string2().optional(),
76954
76956
  model: string2().optional(),
76955
76957
  models: array(OmoAgentModelEntrySchema).optional(),
76958
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
76956
76959
  reasoning: OmoReasoningSchema.optional(),
76957
76960
  variant: string2().optional(),
76958
76961
  reasoningEffort: OmoReasoningEffortSchema.optional(),
@@ -76985,6 +76988,7 @@ var init_category = __esm(() => {
76985
76988
  description: string2().optional(),
76986
76989
  model: string2().optional(),
76987
76990
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional(),
76991
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
76988
76992
  reasoning: OmoReasoningSchema.optional(),
76989
76993
  temperature: number2().min(0).max(2).optional(),
76990
76994
  top_p: number2().min(0).max(1).optional(),
@@ -78828,9 +78832,13 @@ function resolveModelReferences(view) {
78828
78832
  }
78829
78833
  var init_model_reference_resolution = () => {};
78830
78834
 
78835
+ // packages/omo-config-core/src/models/models-distribution.ts
78836
+ var init_models_distribution = () => {};
78837
+
78831
78838
  // packages/omo-config-core/src/models/index.ts
78832
78839
  var init_models = __esm(() => {
78833
78840
  init_model_reference_resolution();
78841
+ init_models_distribution();
78834
78842
  });
78835
78843
 
78836
78844
  // packages/omo-config-core/src/writer/types.ts
@@ -92677,7 +92685,7 @@ var package_default2;
92677
92685
  var init_package2 = __esm(() => {
92678
92686
  package_default2 = {
92679
92687
  name: "@oh-my-opencode/omo-codex",
92680
- version: "5.1.54",
92688
+ version: "5.1.56",
92681
92689
  type: "module",
92682
92690
  private: true,
92683
92691
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -104130,11 +104138,11 @@ function recordFields(value, fields) {
104130
104138
  }
104131
104139
  function modelInput(view) {
104132
104140
  const agents = isPlainRecord(view.agents) ? Object.fromEntries(Object.entries(view.agents).flatMap(([name, definition]) => {
104133
- const fields = recordFields(definition, ["description", "prompt", "model", "models", "variant", "reasoningEffort", "tools", "temperature", "disable"]);
104141
+ const fields = recordFields(definition, ["description", "prompt", "model", "models", "models_distribution", "variant", "reasoningEffort", "tools", "temperature", "disable"]);
104134
104142
  return fields === undefined ? [] : [[name, fields]];
104135
104143
  })) : undefined;
104136
104144
  const categories = isPlainRecord(view.categories) ? Object.fromEntries(Object.entries(view.categories).flatMap(([name, definition]) => {
104137
- const fields = recordFields(definition, ["description", "model", "fallback_models", "variant", "temperature", "top_p", "maxTokens", "thinking", "reasoningEffort", "textVerbosity", "tools", "prompt_append", "max_prompt_tokens", "is_unstable_agent", "disable"]);
104145
+ const fields = recordFields(definition, ["description", "model", "models", "models_distribution", "fallback_models", "variant", "temperature", "top_p", "maxTokens", "thinking", "reasoningEffort", "textVerbosity", "tools", "prompt_append", "max_prompt_tokens", "is_unstable_agent", "disable"]);
104138
104146
  return fields === undefined ? [] : [[name, fields]];
104139
104147
  })) : undefined;
104140
104148
  return {
@@ -104408,6 +104416,7 @@ var AgentPermissionSchema = object({
104408
104416
  var AgentOverrideConfigSchema = object({
104409
104417
  model: string2().optional(),
104410
104418
  models: array(union([string2(), FallbackModelObjectSchema])).optional(),
104419
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
104411
104420
  fallback_models: FallbackModelsSchema.optional(),
104412
104421
  reasoning: OmoReasoningSchema.optional(),
104413
104422
  variant: string2().optional(),
@@ -104508,6 +104517,7 @@ var CategoryConfigSchema = object({
104508
104517
  description: string2().optional(),
104509
104518
  model: string2().optional(),
104510
104519
  models: array(union([string2(), FallbackModelObjectSchema])).optional(),
104520
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
104511
104521
  fallback_models: FallbackModelsSchema.optional(),
104512
104522
  reasoning: OmoReasoningSchema.optional(),
104513
104523
  variant: string2().optional(),
@@ -105071,7 +105081,8 @@ function materializeAgentModelChains(config) {
105071
105081
  return [name, {
105072
105082
  ...rest,
105073
105083
  ...primarySettings,
105074
- fallback_models: fallbacks
105084
+ fallback_models: fallbacks,
105085
+ ...agent.models_distribution === "round_robin" ? { models: agent.models } : {}
105075
105086
  }];
105076
105087
  }));
105077
105088
  return changed ? { ...config, agents } : config;
@@ -2133,7 +2133,7 @@ var package_default;
2133
2133
  var init_package = __esm(() => {
2134
2134
  package_default = {
2135
2135
  name: "oh-my-opencode",
2136
- version: "5.1.54",
2136
+ version: "5.1.56",
2137
2137
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2138
2138
  main: "./dist/index.js",
2139
2139
  types: "dist/index.d.ts",
@@ -2157,6 +2157,7 @@ var init_package = __esm(() => {
2157
2157
  "packages/openclaw-core",
2158
2158
  "packages/boulder-state",
2159
2159
  "packages/memory-core",
2160
+ "packages/device-service-core",
2160
2161
  "packages/isolation-core",
2161
2162
  "packages/telemetry-core",
2162
2163
  "packages/claude-code-compat-core",
@@ -2277,7 +2278,7 @@ var init_package = __esm(() => {
2277
2278
  "check:copy": "bun script/check-copy.ts",
2278
2279
  typecheck: "bun run check:copy && bun check --no-script --all -p tsconfig.json && bun run typecheck:script && bun run typecheck:packages && bun run typecheck:skill-scripts",
2279
2280
  "typecheck:skill-scripts": "bun check --no-script --all -p packages/shared-skills/skills/frontend/scripts/detect/tsconfig.json",
2280
- "typecheck:packages": "bun check --no-script --all -p packages/rules-engine/tsconfig.json && bun check --no-script --all -p packages/delegate-core/tsconfig.json && bun check --no-script --all -p packages/mcp-stdio-core/tsconfig.json && bun check --no-script --all -p packages/mcp-client-core/tsconfig.json && bun check --no-script --all -p packages/git-bash-mcp/tsconfig.json && bun check --no-script --all -p packages/ast-grep-mcp/tsconfig.json && bun check --no-script --all -p packages/lsp-core/tsconfig.json && bun check --no-script --all -p packages/utils/tsconfig.json && bun check --no-script --all -p packages/model-core/tsconfig.json && bun check --no-script --all -p packages/omo-config-core/tsconfig.json && bun check --no-script --all -p packages/prompts-core/tsconfig.json && bun check --no-script --all -p packages/comment-checker-core/tsconfig.json && bun check --no-script --all -p packages/hashline-core/tsconfig.json && bun check --no-script --all -p packages/tmux-core/tsconfig.json && bun check --no-script --all -p packages/team-core/tsconfig.json && bun check --no-script --all -p packages/openclaw-core/tsconfig.json && bun check --no-script --all -p packages/boulder-state/tsconfig.json && bun check --no-script --all -p packages/isolation-core/tsconfig.json && bun check --no-script --all -p packages/memory-core/tsconfig.json && bun check --no-script --all -p packages/telemetry-core/tsconfig.json && bun check --no-script --all -p packages/claude-code-compat-core/tsconfig.json && bun check --no-script --all -p packages/skills-loader-core/tsconfig.json && bun check --no-script --all -p packages/agents-md-core/tsconfig.json && bun check --no-script --all -p packages/omo-codex/plugin/shared/tsconfig.json && bun check --no-script --all -p packages/omo-codex/tsconfig.json && bun check --no-script --all -p packages/omo-senpi/tsconfig.json && bun check --no-script --all -p packages/senpi-task/tsconfig.json && bun check --no-script --all -p packages/omo-opencode/tsconfig.json && bun check --no-script --all -p packages/omo-native/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-protocol/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-engine/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-prelude/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-service/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-tool/tsconfig.json",
2281
+ "typecheck:packages": "bun check --no-script --all -p packages/rules-engine/tsconfig.json && bun check --no-script --all -p packages/delegate-core/tsconfig.json && bun check --no-script --all -p packages/mcp-stdio-core/tsconfig.json && bun check --no-script --all -p packages/mcp-client-core/tsconfig.json && bun check --no-script --all -p packages/git-bash-mcp/tsconfig.json && bun check --no-script --all -p packages/ast-grep-mcp/tsconfig.json && bun check --no-script --all -p packages/lsp-core/tsconfig.json && bun check --no-script --all -p packages/utils/tsconfig.json && bun check --no-script --all -p packages/device-service-core/tsconfig.json && bun check --no-script --all -p packages/model-core/tsconfig.json && bun check --no-script --all -p packages/omo-config-core/tsconfig.json && bun check --no-script --all -p packages/prompts-core/tsconfig.json && bun check --no-script --all -p packages/comment-checker-core/tsconfig.json && bun check --no-script --all -p packages/hashline-core/tsconfig.json && bun check --no-script --all -p packages/tmux-core/tsconfig.json && bun check --no-script --all -p packages/team-core/tsconfig.json && bun check --no-script --all -p packages/openclaw-core/tsconfig.json && bun check --no-script --all -p packages/boulder-state/tsconfig.json && bun check --no-script --all -p packages/isolation-core/tsconfig.json && bun check --no-script --all -p packages/memory-core/tsconfig.json && bun check --no-script --all -p packages/telemetry-core/tsconfig.json && bun check --no-script --all -p packages/claude-code-compat-core/tsconfig.json && bun check --no-script --all -p packages/skills-loader-core/tsconfig.json && bun check --no-script --all -p packages/agents-md-core/tsconfig.json && bun check --no-script --all -p packages/omo-codex/plugin/shared/tsconfig.json && bun check --no-script --all -p packages/omo-codex/tsconfig.json && bun check --no-script --all -p packages/omo-senpi/tsconfig.json && bun check --no-script --all -p packages/senpi-task/tsconfig.json && bun check --no-script --all -p packages/omo-opencode/tsconfig.json && bun check --no-script --all -p packages/omo-native/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-protocol/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-engine/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-prelude/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-service/tsconfig.json && bun check --no-script --all -p packages/senpi-desktop-tool/tsconfig.json",
2281
2282
  "typecheck:script": "bun check --no-script --all -p script/tsconfig.json",
2282
2283
  test: "bun test --timeout 20000",
2283
2284
  "changelog:section": "bun script/changelog-section.ts",
@@ -2324,6 +2325,7 @@ var init_package = __esm(() => {
2324
2325
  "@oh-my-opencode/agents-md-core": "workspace:*",
2325
2326
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2326
2327
  "@oh-my-opencode/boulder-state": "workspace:*",
2328
+ "@oh-my-opencode/device-service-core": "workspace:*",
2327
2329
  "@oh-my-opencode/claude-code-compat-core": "workspace:*",
2328
2330
  "@oh-my-opencode/comment-checker-core": "workspace:*",
2329
2331
  "@oh-my-opencode/delegate-core": "workspace:*",
@@ -2383,18 +2385,18 @@ var init_package = __esm(() => {
2383
2385
  typescript: "^7.0.2"
2384
2386
  },
2385
2387
  optionalDependencies: {
2386
- "oh-my-opencode-darwin-arm64": "5.1.54",
2387
- "oh-my-opencode-darwin-x64": "5.1.54",
2388
- "oh-my-opencode-darwin-x64-baseline": "5.1.54",
2389
- "oh-my-opencode-linux-arm64": "5.1.54",
2390
- "oh-my-opencode-linux-arm64-musl": "5.1.54",
2391
- "oh-my-opencode-linux-x64": "5.1.54",
2392
- "oh-my-opencode-linux-x64-baseline": "5.1.54",
2393
- "oh-my-opencode-linux-x64-musl": "5.1.54",
2394
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.54",
2395
- "oh-my-opencode-windows-arm64": "5.1.54",
2396
- "oh-my-opencode-windows-x64": "5.1.54",
2397
- "oh-my-opencode-windows-x64-baseline": "5.1.54"
2388
+ "oh-my-opencode-darwin-arm64": "5.1.56",
2389
+ "oh-my-opencode-darwin-x64": "5.1.56",
2390
+ "oh-my-opencode-darwin-x64-baseline": "5.1.56",
2391
+ "oh-my-opencode-linux-arm64": "5.1.56",
2392
+ "oh-my-opencode-linux-arm64-musl": "5.1.56",
2393
+ "oh-my-opencode-linux-x64": "5.1.56",
2394
+ "oh-my-opencode-linux-x64-baseline": "5.1.56",
2395
+ "oh-my-opencode-linux-x64-musl": "5.1.56",
2396
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.56",
2397
+ "oh-my-opencode-windows-arm64": "5.1.56",
2398
+ "oh-my-opencode-windows-x64": "5.1.56",
2399
+ "oh-my-opencode-windows-x64-baseline": "5.1.56"
2398
2400
  },
2399
2401
  overrides: {
2400
2402
  hono: "^4.13.8",
@@ -77032,6 +77034,7 @@ var init_agent = __esm(() => {
77032
77034
  prompt: string2().optional(),
77033
77035
  model: string2().optional(),
77034
77036
  models: array(OmoAgentModelEntrySchema).optional(),
77037
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
77035
77038
  reasoning: OmoReasoningSchema.optional(),
77036
77039
  variant: string2().optional(),
77037
77040
  reasoningEffort: OmoReasoningEffortSchema.optional(),
@@ -77064,6 +77067,7 @@ var init_category = __esm(() => {
77064
77067
  description: string2().optional(),
77065
77068
  model: string2().optional(),
77066
77069
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional(),
77070
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
77067
77071
  reasoning: OmoReasoningSchema.optional(),
77068
77072
  temperature: number2().min(0).max(2).optional(),
77069
77073
  top_p: number2().min(0).max(1).optional(),
@@ -78907,9 +78911,13 @@ function resolveModelReferences(view) {
78907
78911
  }
78908
78912
  var init_model_reference_resolution = () => {};
78909
78913
 
78914
+ // packages/omo-config-core/src/models/models-distribution.ts
78915
+ var init_models_distribution = () => {};
78916
+
78910
78917
  // packages/omo-config-core/src/models/index.ts
78911
78918
  var init_models = __esm(() => {
78912
78919
  init_model_reference_resolution();
78920
+ init_models_distribution();
78913
78921
  });
78914
78922
 
78915
78923
  // packages/omo-config-core/src/writer/types.ts
@@ -92756,7 +92764,7 @@ var package_default2;
92756
92764
  var init_package2 = __esm(() => {
92757
92765
  package_default2 = {
92758
92766
  name: "@oh-my-opencode/omo-codex",
92759
- version: "5.1.54",
92767
+ version: "5.1.56",
92760
92768
  type: "module",
92761
92769
  private: true,
92762
92770
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -104209,11 +104217,11 @@ function recordFields(value, fields) {
104209
104217
  }
104210
104218
  function modelInput(view) {
104211
104219
  const agents = isPlainRecord(view.agents) ? Object.fromEntries(Object.entries(view.agents).flatMap(([name, definition]) => {
104212
- const fields = recordFields(definition, ["description", "prompt", "model", "models", "variant", "reasoningEffort", "tools", "temperature", "disable"]);
104220
+ const fields = recordFields(definition, ["description", "prompt", "model", "models", "models_distribution", "variant", "reasoningEffort", "tools", "temperature", "disable"]);
104213
104221
  return fields === undefined ? [] : [[name, fields]];
104214
104222
  })) : undefined;
104215
104223
  const categories = isPlainRecord(view.categories) ? Object.fromEntries(Object.entries(view.categories).flatMap(([name, definition]) => {
104216
- const fields = recordFields(definition, ["description", "model", "fallback_models", "variant", "temperature", "top_p", "maxTokens", "thinking", "reasoningEffort", "textVerbosity", "tools", "prompt_append", "max_prompt_tokens", "is_unstable_agent", "disable"]);
104224
+ const fields = recordFields(definition, ["description", "model", "models", "models_distribution", "fallback_models", "variant", "temperature", "top_p", "maxTokens", "thinking", "reasoningEffort", "textVerbosity", "tools", "prompt_append", "max_prompt_tokens", "is_unstable_agent", "disable"]);
104217
104225
  return fields === undefined ? [] : [[name, fields]];
104218
104226
  })) : undefined;
104219
104227
  return {
@@ -104487,6 +104495,7 @@ var AgentPermissionSchema = object({
104487
104495
  var AgentOverrideConfigSchema = object({
104488
104496
  model: string2().optional(),
104489
104497
  models: array(union([string2(), FallbackModelObjectSchema])).optional(),
104498
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
104490
104499
  fallback_models: FallbackModelsSchema.optional(),
104491
104500
  reasoning: OmoReasoningSchema.optional(),
104492
104501
  variant: string2().optional(),
@@ -104587,6 +104596,7 @@ var CategoryConfigSchema = object({
104587
104596
  description: string2().optional(),
104588
104597
  model: string2().optional(),
104589
104598
  models: array(union([string2(), FallbackModelObjectSchema])).optional(),
104599
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
104590
104600
  fallback_models: FallbackModelsSchema.optional(),
104591
104601
  reasoning: OmoReasoningSchema.optional(),
104592
104602
  variant: string2().optional(),
@@ -105150,7 +105160,8 @@ function materializeAgentModelChains(config) {
105150
105160
  return [name, {
105151
105161
  ...rest,
105152
105162
  ...primarySettings,
105153
- fallback_models: fallbacks
105163
+ fallback_models: fallbacks,
105164
+ ...agent.models_distribution === "round_robin" ? { models: agent.models } : {}
105154
105165
  }];
105155
105166
  }));
105156
105167
  return changed ? { ...config, agents } : config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazycodex-ai",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
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",
@@ -24,6 +24,7 @@
24
24
  "packages/openclaw-core",
25
25
  "packages/boulder-state",
26
26
  "packages/memory-core",
27
+ "packages/device-service-core",
27
28
  "packages/isolation-core",
28
29
  "packages/telemetry-core",
29
30
  "packages/claude-code-compat-core",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -7032,6 +7032,7 @@ var OmoAgentDefInputSchema = object({
7032
7032
  prompt: string2().optional(),
7033
7033
  model: string2().optional(),
7034
7034
  models: array(OmoAgentModelEntrySchema).optional(),
7035
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
7035
7036
  reasoning: OmoReasoningSchema.optional(),
7036
7037
  variant: string2().optional(),
7037
7038
  reasoningEffort: OmoReasoningEffortSchema.optional(),
@@ -7058,6 +7059,7 @@ var OmoCategoryConfigObjectSchema = object({
7058
7059
  description: string2().optional(),
7059
7060
  model: string2().optional(),
7060
7061
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional(),
7062
+ models_distribution: _enum(["sequential", "round_robin"]).optional(),
7061
7063
  reasoning: OmoReasoningSchema.optional(),
7062
7064
  temperature: number2().min(0).max(2).optional(),
7063
7065
  top_p: number2().min(0).max(1).optional(),
@@ -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.1.54) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.56) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.54) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.56) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.1.54) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.56) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.54) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.56) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.54) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.56) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.1.54",
4
- "inputDigest": "sha256:697a2c789b11bcef3067ffa642529c4ec64469117934d7cc53fae09b1e77822d",
3
+ "version": "5.1.56",
4
+ "inputDigest": "sha256:cb4531a0c0ce38be26366267cb989d2a8809b19cd61e4c3e5a6026b8349612a7",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 5.1.54) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.56) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 5.1.54) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.56) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.54) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.56) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.1.54) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.56) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 5.1.54) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.56) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 5.1.54) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.56) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.54) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.56) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.54) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.56) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.54) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.56) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.54) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.56) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.1.54",
3
+ "version": "5.1.56",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex ulw-execute plans.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",