oh-my-opencode 5.1.7 → 5.1.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.
Files changed (74) hide show
  1. package/dist/cli/index.js +23 -43
  2. package/dist/cli-node/index.js +23 -43
  3. package/dist/index.js +45 -40
  4. package/dist/shared/index.d.ts +0 -1
  5. package/dist/shared/live-server-route.d.ts +0 -2
  6. package/dist/shared/tmux/tmux-utils/pane-close.d.ts +0 -3
  7. package/dist/shared/tmux/tmux-utils/server-health.d.ts +1 -1
  8. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  9. package/dist/skills/debugging/SKILL.md +1 -1
  10. package/dist/skills/debugging/references/methodology/06-fix.md +8 -0
  11. package/dist/tui.js +22 -42
  12. package/package.json +14 -14
  13. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  14. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +6 -3
  15. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  16. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +0 -16
  18. package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +3 -0
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  22. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  23. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  25. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  26. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  27. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +0 -27
  29. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  30. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  36. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +0 -6
  38. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -15
  39. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  40. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  41. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  42. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  64. package/packages/omo-codex/plugin/package-lock.json +12 -12
  65. package/packages/omo-codex/plugin/package.json +1 -1
  66. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  67. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
  68. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +8 -0
  69. package/packages/omo-codex/plugin/test/AGENTS.md +11 -0
  70. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +0 -50
  71. package/packages/omo-codex/scripts/install-dist/install-local.mjs +8 -5
  72. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  73. package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
  74. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +8 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
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",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  "devDependencies": {
179
179
  "@clack/prompts": "^1.8.1",
180
- "@code-yeongyu/senpi": "2026.9.30",
180
+ "@code-yeongyu/senpi": "2026.10.1-2",
181
181
  "@modelcontextprotocol/sdk": "^1.30.0",
182
182
  "@oh-my-opencode/agents-md-core": "workspace:*",
183
183
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -235,18 +235,18 @@
235
235
  "typescript": "^7.0.2"
236
236
  },
237
237
  "optionalDependencies": {
238
- "oh-my-opencode-darwin-arm64": "5.1.7",
239
- "oh-my-opencode-darwin-x64": "5.1.7",
240
- "oh-my-opencode-darwin-x64-baseline": "5.1.7",
241
- "oh-my-opencode-linux-arm64": "5.1.7",
242
- "oh-my-opencode-linux-arm64-musl": "5.1.7",
243
- "oh-my-opencode-linux-x64": "5.1.7",
244
- "oh-my-opencode-linux-x64-baseline": "5.1.7",
245
- "oh-my-opencode-linux-x64-musl": "5.1.7",
246
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.7",
247
- "oh-my-opencode-windows-arm64": "5.1.7",
248
- "oh-my-opencode-windows-x64": "5.1.7",
249
- "oh-my-opencode-windows-x64-baseline": "5.1.7"
238
+ "oh-my-opencode-darwin-arm64": "5.1.8",
239
+ "oh-my-opencode-darwin-x64": "5.1.8",
240
+ "oh-my-opencode-darwin-x64-baseline": "5.1.8",
241
+ "oh-my-opencode-linux-arm64": "5.1.8",
242
+ "oh-my-opencode-linux-arm64-musl": "5.1.8",
243
+ "oh-my-opencode-linux-x64": "5.1.8",
244
+ "oh-my-opencode-linux-x64-baseline": "5.1.8",
245
+ "oh-my-opencode-linux-x64-musl": "5.1.8",
246
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.8",
247
+ "oh-my-opencode-windows-arm64": "5.1.8",
248
+ "oh-my-opencode-windows-x64": "5.1.8",
249
+ "oh-my-opencode-windows-x64-baseline": "5.1.8"
250
250
  },
251
251
  "overrides": {
252
252
  "hono": "^4.13.8",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -7148,7 +7148,8 @@ var OmoMemoryRecallSchema = object({
7148
7148
  event_caps: OmoMemoryRecallEventCapsSchema.default({ tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 }),
7149
7149
  sidecar_max_tokens: number2().int().positive().default(48000),
7150
7150
  max_concurrent_wakes: number2().int().positive().default(2),
7151
- tool_budget: number2().int().positive().default(8)
7151
+ tool_budget: number2().int().positive().default(8),
7152
+ query_expansion: boolean2().default(false)
7152
7153
  }).strict();
7153
7154
  var OmoMemoryNudgeSchema = object({
7154
7155
  enabled: boolean2().default(true),
@@ -7209,7 +7210,8 @@ var OmoMemoryRecallLayerSchema = object({
7209
7210
  event_caps: OmoMemoryRecallEventCapsLayerSchema.optional(),
7210
7211
  sidecar_max_tokens: number2().int().positive().optional(),
7211
7212
  max_concurrent_wakes: number2().int().positive().optional(),
7212
- tool_budget: number2().int().positive().optional()
7213
+ tool_budget: number2().int().positive().optional(),
7214
+ query_expansion: boolean2().optional()
7213
7215
  }).strict();
7214
7216
  var OmoMemoryNudgeLayerSchema = object({
7215
7217
  enabled: boolean2().optional(),
@@ -7286,7 +7288,8 @@ var OmoMemorySettingsSchema = object({
7286
7288
  event_caps: { tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 },
7287
7289
  sidecar_max_tokens: 48000,
7288
7290
  max_concurrent_wakes: 2,
7289
- tool_budget: 8
7291
+ tool_budget: 8,
7292
+ query_expansion: false
7290
7293
  }),
7291
7294
  compile_warn_tokens: number2().int().positive().default(30000),
7292
7295
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
@@ -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.7) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -262,22 +262,6 @@ describe("downloadFromManifest", () => {
262
262
  });
263
263
 
264
264
  describe("committed manifests", () => {
265
- it("#given the committed ast-grep manifest #when loaded #then every required platform pins an https URL and a sha256", async () => {
266
- // given / when
267
- const manifest = await loadAssetManifest("ast-grep");
268
-
269
- // then
270
- expect(manifest.name).toBe("ast-grep");
271
- expect(manifest.version).toMatch(/^\d+\.\d+\.\d+$/);
272
- for (const platformKey of ["darwin-arm64", "darwin-x64", "linux-x64", "win32-x64"]) {
273
- const asset = manifest.platforms[platformKey];
274
- if (asset === undefined) throw new Error(`missing platform ${platformKey}`);
275
- expect(asset.url).toStartWith("https://");
276
- expect(asset.url).toContain(manifest.version);
277
- expect(asset.sha256).toMatch(/^[a-f0-9]{64}$/);
278
- }
279
- });
280
-
281
265
  it("#given the committed node manifest #when loaded #then the win32-x64 LTS zip pins an https URL and a sha256", async () => {
282
266
  // given / when
283
267
  const manifest = await loadAssetManifest("node");
@@ -373,4 +373,7 @@ async function writeSyncSourceFixture(sourceRoot: string): Promise<void> {
373
373
  await writeExecutableStub(join(sourceRoot, "packages", "git-bash-mcp", "dist", "cli.js"));
374
374
  await writeExecutableStub(join(sourceRoot, "packages", "lsp-tools-mcp", "dist", "cli.js"));
375
375
  await writeExecutableStub(join(sourceRoot, "packages", "lsp-daemon", "dist", "cli.js"));
376
+ // The sync bundles the root CLI and its node fallback too (script/lazycodex-runtime-dists.ts).
377
+ await writeExecutableStub(join(sourceRoot, "dist", "cli", "index.js"));
378
+ await writeExecutableStub(join(sourceRoot, "dist", "cli-node", "index.js"));
376
379
  }
@@ -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.7) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.8) 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.7) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7",
4
- "inputDigest": "sha256:7628ae176ffa5fe1657de3e04fb8944d413281370d4c46b5df7085db4f1ec720",
3
+ "version": "5.1.8",
4
+ "inputDigest": "sha256:7c96b2202dae9f1403113570ac78a39817b8af2dc767c2c49ff084673798c1c0",
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.7) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.8) 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.7) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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",
@@ -16,9 +16,6 @@ describe("plugin package metadata", () => {
16
16
  const hooksJson = readHooksJson("hooks/hooks.json");
17
17
  const mcpJson = readMcpJson(".mcp.json");
18
18
  const cliSource = readTextFile("src/cli.ts");
19
- const daemonCliPathSource = readTextFile("src/daemon-cli-path.ts");
20
- const codexHookCliSource = readTextFile("src/codex-hook-cli.ts");
21
- const codexHookSource = readTextFile("src/codex-hook.ts");
22
19
  const sourceFiles = listDirectoryEntries("src");
23
20
  const scripts = requireScripts(packageJson, "package.json");
24
21
 
@@ -55,30 +52,6 @@ describe("plugin package metadata", () => {
55
52
  },
56
53
  },
57
54
  });
58
- expect(cliSource).not.toContain("./lazy-lsp-mcp.js");
59
- expect(cliSource).toContain("resolveLspDaemonCliPath");
60
- expect(daemonCliPathSource).toContain("@code-yeongyu/lsp-daemon/cli");
61
- expect(daemonCliPathSource).toContain("../../lsp-daemon/dist/cli.js");
62
- expect(daemonCliPathSource).toContain("OMO_LSP_DAEMON_VERSION");
63
- expect(cliSource).not.toContain("../../../../../lsp-daemon/dist/cli.js");
64
- expect(codexHookSource).toContain("ensureLspDaemonCliEnv");
65
- expect(codexHookCliSource).not.toContain("@code-yeongyu/lsp-daemon");
66
- expect(codexHookSource).toContain("@code-yeongyu/lsp-daemon/client");
67
- expect(codexHookSource).toContain("@oh-my-opencode/lsp-core/post-edit");
68
- expect(codexHookSource).toContain("CODEX_HOME");
69
- expect(codexHookCliSource).not.toContain("../../../../../lsp-daemon");
70
- expect(codexHookSource).not.toContain("../../../../../lsp-daemon");
71
55
  expect(sourceFiles.filter((name) => name.startsWith("lazy-mcp") || name === "lazy-lsp-mcp.ts")).toEqual([]);
72
56
  });
73
-
74
- it("#given built component CLI #when runtime imports are inspected #then it is self-contained except Node builtins", () => {
75
- const cliSource = readTextFile("dist/cli.js");
76
- const imports = [
77
- ...cliSource.matchAll(/\bimport\s+(?:[^'";]+?\s+from\s+)?["']([^"']+)["']/g),
78
- ...cliSource.matchAll(/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g),
79
- ].flatMap((match) => (match[1] === undefined ? [] : [match[1]]));
80
- expect(imports.filter((specifier) => !specifier.startsWith("node:"))).toEqual([]);
81
- expect(cliSource).not.toContain("@code-yeongyu/lsp-daemon/client");
82
- expect(cliSource).not.toContain("@oh-my-opencode/lsp-core");
83
- });
84
57
  });
@@ -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.7) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.8) 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.7) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.8) 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.7) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.8) 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.7) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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.7) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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",
@@ -21,14 +21,8 @@ describe("codex ultrawork directive source", () => {
21
21
  // given
22
22
  const directiveSource = readFileSync(new URL("../src/directive.ts", import.meta.url), "utf8");
23
23
 
24
- // when
25
- const importsBundledConstant = directiveSource.includes(
26
- 'import { ULTRAWORK_DIRECTIVE_TEXT } from "./directive-content.js"',
27
- );
28
-
29
24
  // then
30
25
  // prompts-core's contract: markdown is bundled at build time, never read from disk at runtime.
31
- expect(importsBundledConstant).toBe(true);
32
26
  expect(directiveSource).not.toMatch(/readFileSync|readFile\(/);
33
27
  });
34
28
  });
@@ -1,4 +1,3 @@
1
- import { readFileSync } from "node:fs";
2
1
  import { describe, expect, it } from "vitest";
3
2
  import {
4
3
  collectHookCommandsFromValue,
@@ -6,43 +5,29 @@ import {
6
5
  readPackageJson,
7
6
  readTextFile,
8
7
  requireFiles,
9
- requireScripts,
10
8
  } from "../../test-support/package-smoke-fixture.js";
11
- import { ULTRAWORK_DIRECTIVE } from "../src/directive.js";
12
9
 
13
10
  describe("codex ultrawork package metadata", () => {
14
11
  it("#given package metadata #when inspected #then hook ships as bundled CLI", () => {
15
12
  // given
16
- const canonicalDirective = readFileSync(
17
- new URL(import.meta.resolve("@oh-my-opencode/prompts-core/prompts/ultrawork/codex.md")),
18
- "utf8",
19
- );
20
13
  const packageJson = readPackageJson("package.json");
21
14
  const hooksJson = readJsonFile("hooks/hooks.json");
22
15
  const cliSource = readTextFile("src/cli.ts");
23
16
 
24
17
  // when
25
18
  const packageFiles = requireFiles(packageJson, "package.json");
26
- const scripts = requireScripts(packageJson, "package.json");
27
19
  const hookCommands = collectHookCommandsFromValue(hooksJson);
28
20
  const pluginRoot = ["$", "{PLUGIN_ROOT}"].join("");
29
21
 
30
22
  // then
31
23
  expect(packageJson.type).toBe("module");
32
- expect(packageJson.packageManager).toBe("npm@11.12.1");
33
24
  expect(packageJson.bin["omo-ultrawork"]).toBe("./dist/cli.js");
34
- expect(scripts["build"]).toBe(
35
- "node scripts/sync-directive.mjs && node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && bun build src/cli.ts --target node --format esm --outfile dist/cli.js",
36
- );
37
- expect(scripts["test"]).toBe("vitest --run");
38
25
  expect(packageFiles).toContain("dist");
39
26
  expect(packageFiles).toContain("skills");
40
27
  // The directive is no longer a published file: it ships compiled into dist/cli.js via the
41
28
  // generated src/directive-content.ts, so assert the bundled contract instead of files-list
42
29
  // membership.
43
30
  expect(packageFiles).not.toContain("directive.md");
44
- expect(ULTRAWORK_DIRECTIVE.length).toBeGreaterThan(0);
45
- expect(ULTRAWORK_DIRECTIVE).toBe(canonicalDirective);
46
31
  expect(packageFiles).not.toContain("hooks/ultrawork-detector.py");
47
32
  expect(cliSource.startsWith("#!/usr/bin/env node")).toBe(true);
48
33
  expect(hookCommands).toContain(`node "${pluginRoot}/dist/cli.js" hook user-prompt-submit`);
@@ -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.7) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.8) 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.7",
3
+ "version": "5.1.8",
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",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.7) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.1.8) Checking Ulw-Loop Steering"
11
11
  }
12
12
  ]
13
13
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use-spawn",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.7) Recording Spawn Admission"
23
+ "statusMessage": "(OmO 5.1.8) Recording Spawn Admission"
24
24
  }
25
25
  ]
26
26
  }
@@ -33,7 +33,7 @@
33
33
  "type": "command",
34
34
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
35
35
  "timeout": 5,
36
- "statusMessage": "(OmO 5.1.7) Enforcing Unlimited Ulw-Loop Budget"
36
+ "statusMessage": "(OmO 5.1.8) Enforcing Unlimited Ulw-Loop Budget"
37
37
  }
38
38
  ]
39
39
  },
@@ -44,7 +44,7 @@
44
44
  "type": "command",
45
45
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
46
46
  "timeout": 5,
47
- "statusMessage": "(OmO 5.1.7) Guarding Ulw-Loop Spawns"
47
+ "statusMessage": "(OmO 5.1.8) Guarding Ulw-Loop Spawns"
48
48
  }
49
49
  ]
50
50
  }
@@ -56,7 +56,7 @@
56
56
  "type": "command",
57
57
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
58
58
  "timeout": 10,
59
- "statusMessage": "(OmO 5.1.7) Checking Ulw-Loop Resume"
59
+ "statusMessage": "(OmO 5.1.8) Checking Ulw-Loop Resume"
60
60
  }
61
61
  ]
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
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/git-bash/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.7) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.1.8) Resetting Git Bash MCP Reminder",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.7) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.1.8) Resetting LSP Diagnostics Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.7) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.1.8) Resetting Project Rule Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 30,
10
- "statusMessage": "(OmO 5.1.7) Checking Comments",
10
+ "statusMessage": "(OmO 5.1.8) Checking Comments",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 60,
10
- "statusMessage": "(OmO 5.1.7) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.1.8) Checking LSP Diagnostics",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.7) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.1.8) Checking Thread Title Hygiene",
12
12
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.7) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.1.8) Matching Project Rules",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook post-tool-use-spawn",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.1.7) Recording Spawn Admission",
11
+ "statusMessage": "(OmO 5.1.8) Recording Spawn Admission",
12
12
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook post-tool-use-spawn"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.7) Enforcing Unlimited Goal Budget",
10
+ "statusMessage": "(OmO 5.1.8) Enforcing Unlimited Goal Budget",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
12
12
  }
13
13
  ],