lazycodex-ai 5.0.0-beta.2 → 5.0.0-beta.4

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 (59) hide show
  1. package/dist/cli/index.js +17 -15
  2. package/dist/cli-node/index.js +17 -15
  3. package/package.json +1 -1
  4. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  5. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  6. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  7. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +2 -0
  8. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +2 -0
  9. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  10. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  11. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  12. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  13. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  14. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  17. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  18. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  20. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/start-work-continuation/AGENTS.md +3 -2
  22. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  23. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  29. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  31. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  32. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  33. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/package-lock.json +13 -13
  56. package/packages/omo-codex/plugin/package.json +1 -1
  57. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +69 -0
  58. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  59. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +69 -0
package/dist/cli/index.js CHANGED
@@ -2145,7 +2145,7 @@ var package_default;
2145
2145
  var init_package = __esm(() => {
2146
2146
  package_default = {
2147
2147
  name: "oh-my-opencode",
2148
- version: "5.0.0-beta.2",
2148
+ version: "5.0.0-beta.4",
2149
2149
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2150
2150
  main: "./dist/index.js",
2151
2151
  types: "dist/index.d.ts",
@@ -2325,7 +2325,7 @@ var init_package = __esm(() => {
2325
2325
  zod: "^4.4.3"
2326
2326
  },
2327
2327
  devDependencies: {
2328
- "@code-yeongyu/senpi": "2026.8.9-2",
2328
+ "@code-yeongyu/senpi": "2026.8.11",
2329
2329
  "@oh-my-opencode/agents-md-core": "workspace:*",
2330
2330
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2331
2331
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2365,18 +2365,18 @@ var init_package = __esm(() => {
2365
2365
  typescript: "^7.0.2"
2366
2366
  },
2367
2367
  optionalDependencies: {
2368
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.2",
2369
- "oh-my-opencode-darwin-x64": "5.0.0-beta.2",
2370
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.2",
2371
- "oh-my-opencode-linux-arm64": "5.0.0-beta.2",
2372
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.2",
2373
- "oh-my-opencode-linux-x64": "5.0.0-beta.2",
2374
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.2",
2375
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.2",
2376
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.2",
2377
- "oh-my-opencode-windows-arm64": "5.0.0-beta.2",
2378
- "oh-my-opencode-windows-x64": "5.0.0-beta.2",
2379
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.2"
2368
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.4",
2369
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.4",
2370
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.4",
2371
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.4",
2372
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.4",
2373
+ "oh-my-opencode-linux-x64": "5.0.0-beta.4",
2374
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.4",
2375
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.4",
2376
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.4",
2377
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.4",
2378
+ "oh-my-opencode-windows-x64": "5.0.0-beta.4",
2379
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.4"
2380
2380
  },
2381
2381
  overrides: {
2382
2382
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -22454,6 +22454,7 @@ var init_memory = __esm(() => {
22454
22454
  OmoMemorySettingsSchema = object({
22455
22455
  enabled: boolean2().default(true),
22456
22456
  agent: string2().min(1).default("auto"),
22457
+ tool_exposure: _enum2(["direct", "search"]).default("direct"),
22457
22458
  reflection: OmoMemoryReflectionSchema.default({
22458
22459
  trigger: { step_count: 0, on_compaction: true },
22459
22460
  merge: "auto",
@@ -22469,6 +22470,7 @@ var init_memory = __esm(() => {
22469
22470
  OmoMemorySettingsLayerSchema = object({
22470
22471
  enabled: boolean2().optional(),
22471
22472
  agent: string2().min(1).optional(),
22473
+ tool_exposure: _enum2(["direct", "search"]).optional(),
22472
22474
  reflection: OmoMemoryReflectionLayerSchema.optional(),
22473
22475
  sync: OmoMemorySyncLayerSchema.optional(),
22474
22476
  search: OmoMemorySearchLayerSchema.optional(),
@@ -94439,7 +94441,7 @@ var package_default2;
94439
94441
  var init_package2 = __esm(() => {
94440
94442
  package_default2 = {
94441
94443
  name: "@oh-my-opencode/omo-codex",
94442
- version: "5.0.0-beta.2",
94444
+ version: "5.0.0-beta.4",
94443
94445
  type: "module",
94444
94446
  private: true,
94445
94447
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -2146,7 +2146,7 @@ var package_default;
2146
2146
  var init_package = __esm(() => {
2147
2147
  package_default = {
2148
2148
  name: "oh-my-opencode",
2149
- version: "5.0.0-beta.2",
2149
+ version: "5.0.0-beta.4",
2150
2150
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2151
2151
  main: "./dist/index.js",
2152
2152
  types: "dist/index.d.ts",
@@ -2326,7 +2326,7 @@ var init_package = __esm(() => {
2326
2326
  zod: "^4.4.3"
2327
2327
  },
2328
2328
  devDependencies: {
2329
- "@code-yeongyu/senpi": "2026.8.9-2",
2329
+ "@code-yeongyu/senpi": "2026.8.11",
2330
2330
  "@oh-my-opencode/agents-md-core": "workspace:*",
2331
2331
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2332
2332
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2366,18 +2366,18 @@ var init_package = __esm(() => {
2366
2366
  typescript: "^7.0.2"
2367
2367
  },
2368
2368
  optionalDependencies: {
2369
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.2",
2370
- "oh-my-opencode-darwin-x64": "5.0.0-beta.2",
2371
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.2",
2372
- "oh-my-opencode-linux-arm64": "5.0.0-beta.2",
2373
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.2",
2374
- "oh-my-opencode-linux-x64": "5.0.0-beta.2",
2375
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.2",
2376
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.2",
2377
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.2",
2378
- "oh-my-opencode-windows-arm64": "5.0.0-beta.2",
2379
- "oh-my-opencode-windows-x64": "5.0.0-beta.2",
2380
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.2"
2369
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.4",
2370
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.4",
2371
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.4",
2372
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.4",
2373
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.4",
2374
+ "oh-my-opencode-linux-x64": "5.0.0-beta.4",
2375
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.4",
2376
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.4",
2377
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.4",
2378
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.4",
2379
+ "oh-my-opencode-windows-x64": "5.0.0-beta.4",
2380
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.4"
2381
2381
  },
2382
2382
  overrides: {
2383
2383
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -22455,6 +22455,7 @@ var init_memory = __esm(() => {
22455
22455
  OmoMemorySettingsSchema = object({
22456
22456
  enabled: boolean2().default(true),
22457
22457
  agent: string2().min(1).default("auto"),
22458
+ tool_exposure: _enum2(["direct", "search"]).default("direct"),
22458
22459
  reflection: OmoMemoryReflectionSchema.default({
22459
22460
  trigger: { step_count: 0, on_compaction: true },
22460
22461
  merge: "auto",
@@ -22470,6 +22471,7 @@ var init_memory = __esm(() => {
22470
22471
  OmoMemorySettingsLayerSchema = object({
22471
22472
  enabled: boolean2().optional(),
22472
22473
  agent: string2().min(1).optional(),
22474
+ tool_exposure: _enum2(["direct", "search"]).optional(),
22473
22475
  reflection: OmoMemoryReflectionLayerSchema.optional(),
22474
22476
  sync: OmoMemorySyncLayerSchema.optional(),
22475
22477
  search: OmoMemorySearchLayerSchema.optional(),
@@ -94495,7 +94497,7 @@ var package_default2;
94495
94497
  var init_package2 = __esm(() => {
94496
94498
  package_default2 = {
94497
94499
  name: "@oh-my-opencode/omo-codex",
94498
- version: "5.0.0-beta.2",
94500
+ version: "5.0.0-beta.4",
94499
94501
  type: "module",
94500
94502
  private: true,
94501
94503
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazycodex-ai",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.2) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -5597,6 +5597,7 @@ var OmoMemoryAgentOverridesSchema = object({
5597
5597
  var OmoMemorySettingsSchema = object({
5598
5598
  enabled: boolean2().default(true),
5599
5599
  agent: string2().min(1).default("auto"),
5600
+ tool_exposure: _enum(["direct", "search"]).default("direct"),
5600
5601
  reflection: OmoMemoryReflectionSchema.default({
5601
5602
  trigger: { step_count: 0, on_compaction: true },
5602
5603
  merge: "auto",
@@ -5612,6 +5613,7 @@ var OmoMemorySettingsSchema = object({
5612
5613
  var OmoMemorySettingsLayerSchema = object({
5613
5614
  enabled: boolean2().optional(),
5614
5615
  agent: string2().min(1).optional(),
5616
+ tool_exposure: _enum(["direct", "search"]).optional(),
5615
5617
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5616
5618
  sync: OmoMemorySyncLayerSchema.optional(),
5617
5619
  search: OmoMemorySearchLayerSchema.optional(),
@@ -5863,6 +5863,7 @@ var OmoMemoryAgentOverridesSchema = object({
5863
5863
  var OmoMemorySettingsSchema = object({
5864
5864
  enabled: boolean2().default(true),
5865
5865
  agent: string2().min(1).default("auto"),
5866
+ tool_exposure: _enum(["direct", "search"]).default("direct"),
5866
5867
  reflection: OmoMemoryReflectionSchema.default({
5867
5868
  trigger: { step_count: 0, on_compaction: true },
5868
5869
  merge: "auto",
@@ -5878,6 +5879,7 @@ var OmoMemorySettingsSchema = object({
5878
5879
  var OmoMemorySettingsLayerSchema = object({
5879
5880
  enabled: boolean2().optional(),
5880
5881
  agent: string2().min(1).optional(),
5882
+ tool_exposure: _enum(["direct", "search"]).optional(),
5881
5883
  reflection: OmoMemoryReflectionLayerSchema.optional(),
5882
5884
  sync: OmoMemorySyncLayerSchema.optional(),
5883
5885
  search: OmoMemorySearchLayerSchema.optional(),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-codegraph",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "Codex plugin MCP wrapper for CodeGraph.",
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.0.0-beta.2) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2",
4
- "inputDigest": "sha256:06f4443ff2acd7ed3579d628b8ceed023a8a5baf4a6e418ad60c57d9b88a4a80",
3
+ "version": "5.0.0-beta.4",
4
+ "inputDigest": "sha256:41e04f36fa735df54afa5c237d86393e1b319c48d402dadc7716a49b06f7f5a6",
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.0.0-beta.2) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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",
@@ -31,9 +31,10 @@ Conventions for human contributors and AI agents working on this repository.
31
31
 
32
32
  ## Layout
33
33
 
34
- - `src/boulder-reader.ts`: reads `.omo/boulder.json`, resolves the active work for the session, re-exports `getPlanChecklist`/`PlanChecklist` from `plan-checklist.ts`. `readContinuationState` returns null only when the plan has no readable top-level checklist (`total === 0`).
34
+ - `src/boulder-reader.ts`: reads `.omo/boulder.json`, resolves the active work for the session, re-exports `getPlanChecklist`/`PlanChecklist` from `plan-checklist.ts`. `readContinuationState` returns null in four cases: `boulder.json` is missing or unparseable, no work matches the session, the work status is not continuable (only `active` and `paused` continue - `completed`/`abandoned` stop), or `checklist.total === 0`.
35
35
  - `src/plan-checklist.ts`: `PlanChecklist` (`completed`/`remaining`/`total`/`nextTaskLabel`) and `getPlanChecklist`/`parsePlanChecklist`. Counts structured `## TODOs` rows (`N. <title>`) and `## Final Verification Wave` rows (`F<number>. <title>`); falls back to simple top-level `- [ ]`/`- [x]` checkboxes. Skips fenced blocks and respects `#`/`##` section boundaries.
36
- - `src/codex-hook.ts`: Stop/SubagentStop hook; fills `REMAINING_COUNT`/`TOTAL_COUNT`/`NEXT_TASK_LABEL` from the checklist into `directive.md`.
36
+ - `src/codex-hook.ts`: Stop/SubagentStop hook; fills nine placeholders into `directive.md` - `PLAN_NAME`, `PLAN_PATH`, `BOULDER_PATH`, `REMAINING_COUNT`, `TOTAL_COUNT`, `NEXT_TASK_LABEL`, `WORKTREE_BLOCK`, `LEDGER_PATH`, `SESSION_ID`. `WORKTREE_BLOCK` renders empty when the work has no worktree. When `remaining === 0`, `nextTaskLabel` is null and renders as "none (final gate pending)".
37
+ - **Context-pressure suppression:** the hook reads `input.transcript_path` through the injected `ReadonlyFileSystem` and returns `""` (no continuation) when the transcript carries any context-pressure marker (`context compacted`, `context_length_exceeded`, `context_too_large`, `codex ran out of room in the model's context window`, and related phrasings). This is the safety valve against an infinite continuation loop once the context window is exhausted; it is pinned by a `#given context-window pressure` test.
37
38
  - `directive.md`: directive template with placeholders, applied per invocation.
38
39
 
39
40
  ## Build and Hooks
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Start-Work Continuation"
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Start-Work Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Start-Work Continuation"
22
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Start-Work Continuation"
23
23
  }
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-start-work-continuation",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex start-work plans.",
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.0.0-beta.2) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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 pre-tool-use",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.0.0-beta.2) Enforcing Unlimited Ulw-Loop Budget"
23
+ "statusMessage": "(OmO 5.0.0-beta.4) Enforcing Unlimited Ulw-Loop Budget"
24
24
  }
25
25
  ]
26
26
  },
@@ -31,7 +31,7 @@
31
31
  "type": "command",
32
32
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
33
33
  "timeout": 5,
34
- "statusMessage": "(OmO 5.0.0-beta.2) Guarding Ulw-Loop Spawns"
34
+ "statusMessage": "(OmO 5.0.0-beta.4) Guarding Ulw-Loop Spawns"
35
35
  }
36
36
  ]
37
37
  }
@@ -43,7 +43,7 @@
43
43
  "type": "command",
44
44
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
45
45
  "timeout": 10,
46
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Ulw-Loop Resume"
46
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Ulw-Loop Resume"
47
47
  }
48
48
  ]
49
49
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
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.0.0-beta.2) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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/codegraph/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking CodeGraph Init Guidance",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking CodeGraph Init Guidance",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\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/comment-checker/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 30,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Comments",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.0.0-beta.4) 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.0.0-beta.2) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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
  ],
@@ -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.0.0-beta.2) Enforcing Unlimited Goal Budget",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) 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
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.2) Guarding Ulw-Loop Spawns",
11
+ "statusMessage": "(OmO 5.0.0-beta.4) Guarding Ulw-Loop Spawns",
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 pre-tool-use-spawn"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Recommending Git Bash MCP",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Recommending Git Bash MCP",
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 pre-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Auto Update",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Auto Update",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
12
12
  }
13
13
  ],
@@ -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.2) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking CodeGraph Bootstrap",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking CodeGraph Bootstrap",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Loading Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Loading 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 session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Recording Session Telemetry",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Recording Session Telemetry",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Start-Work Continuation",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Start-Work Continuation",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Ulw-Loop Resume",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Ulw-Loop Resume",
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 stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Start-Work Continuation",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Start-Work Continuation",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook subagent-stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Verifying LazyCodex Executor Evidence",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Verifying LazyCodex Executor Evidence",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Ultrawork Trigger",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Ultrawork Trigger",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Checking Ulw-Loop Steering",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Checking Ulw-Loop Steering",
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 user-prompt-submit"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.2) Loading Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.4) Loading 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 user-prompt-submit"
12
12
  }
13
13
  ]
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/omo-codex-plugin",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@sisyphuslabs/omo-codex-plugin",
9
- "version": "5.0.0-beta.2",
9
+ "version": "5.0.0-beta.4",
10
10
  "workspaces": [
11
11
  "components/codegraph",
12
12
  "components/comment-checker",
@@ -101,7 +101,7 @@
101
101
  },
102
102
  "components/codegraph": {
103
103
  "name": "@sisyphuslabs/codex-codegraph",
104
- "version": "5.0.0-beta.2",
104
+ "version": "5.0.0-beta.4",
105
105
  "bin": {
106
106
  "omo-codegraph": "dist/cli.js"
107
107
  },
@@ -120,7 +120,7 @@
120
120
  },
121
121
  "components/comment-checker": {
122
122
  "name": "@code-yeongyu/codex-comment-checker",
123
- "version": "5.0.0-beta.2",
123
+ "version": "5.0.0-beta.4",
124
124
  "license": "MIT",
125
125
  "bin": {
126
126
  "omo-comment-checker": "dist/cli.js"
@@ -141,7 +141,7 @@
141
141
  },
142
142
  "components/git-bash": {
143
143
  "name": "@sisyphuslabs/codex-git-bash-hook",
144
- "version": "5.0.0-beta.2",
144
+ "version": "5.0.0-beta.4",
145
145
  "bin": {
146
146
  "omo-git-bash-hook": "dist/cli.js"
147
147
  },
@@ -156,7 +156,7 @@
156
156
  },
157
157
  "components/lazycodex-executor-verify": {
158
158
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
159
- "version": "5.0.0-beta.2",
159
+ "version": "5.0.0-beta.4",
160
160
  "license": "MIT",
161
161
  "bin": {
162
162
  "lazycodex-executor-verify": "dist/cli.js"
@@ -173,7 +173,7 @@
173
173
  },
174
174
  "components/lsp": {
175
175
  "name": "@code-yeongyu/codex-lsp",
176
- "version": "5.0.0-beta.2",
176
+ "version": "5.0.0-beta.4",
177
177
  "license": "MIT",
178
178
  "dependencies": {
179
179
  "@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
@@ -194,7 +194,7 @@
194
194
  },
195
195
  "components/rules": {
196
196
  "name": "@code-yeongyu/codex-rules",
197
- "version": "5.0.0-beta.2",
197
+ "version": "5.0.0-beta.4",
198
198
  "license": "MIT",
199
199
  "dependencies": {
200
200
  "picomatch": "^4.0.3"
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "components/start-work-continuation": {
218
218
  "name": "@code-yeongyu/codex-start-work-continuation",
219
- "version": "5.0.0-beta.2",
219
+ "version": "5.0.0-beta.4",
220
220
  "license": "MIT",
221
221
  "bin": {
222
222
  "omo-start-work-continuation": "dist/cli.js"
@@ -233,7 +233,7 @@
233
233
  },
234
234
  "components/teammode": {
235
235
  "name": "@sisyphuslabs/codex-teammode",
236
- "version": "5.0.0-beta.2",
236
+ "version": "5.0.0-beta.4",
237
237
  "devDependencies": {
238
238
  "@types/node": "^25.9.3",
239
239
  "bun-types": "^1.3.1",
@@ -246,7 +246,7 @@
246
246
  },
247
247
  "components/telemetry": {
248
248
  "name": "@code-yeongyu/codex-telemetry",
249
- "version": "5.0.0-beta.2",
249
+ "version": "5.0.0-beta.4",
250
250
  "license": "MIT",
251
251
  "bin": {
252
252
  "omo-telemetry": "dist/cli.js"
@@ -264,7 +264,7 @@
264
264
  },
265
265
  "components/ultrawork": {
266
266
  "name": "@code-yeongyu/codex-ultrawork",
267
- "version": "5.0.0-beta.2",
267
+ "version": "5.0.0-beta.4",
268
268
  "license": "MIT",
269
269
  "bin": {
270
270
  "omo-ultrawork": "dist/cli.js"
@@ -282,7 +282,7 @@
282
282
  },
283
283
  "components/ulw-loop": {
284
284
  "name": "@code-yeongyu/codex-ulw-loop",
285
- "version": "5.0.0-beta.2",
285
+ "version": "5.0.0-beta.4",
286
286
  "license": "MIT",
287
287
  "bin": {
288
288
  "omo-ulw-loop": "dist/cli.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/omo-codex-plugin",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "Aggregate Codex plugin root for OMO components.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -0,0 +1,69 @@
1
+ # ultimate-browsing/engine — Generic WAF-Profile Fetch Chain (Python)
2
+
3
+ **Generated:** 2026-08-10 / 38d268995
4
+
5
+ ## OVERVIEW
6
+
7
+ A 17-module Python package embedded in the `ultimate-browsing` skill: a site-agnostic fetch chain that escalates from a cheap curl probe to a real browser, with declarative WAF and surrogate registries. Not "optional scripts" — it has its own CLI entry (`python3 -m engine URL`), two YAML config schemas, a 4-file test suite, and a standalone CI guard. Package exports (`__init__.py`): `fetch`, `FetchResult`, `Attempt`, `Verdict`, `ValidationResult`, `validate`, `CHALLENGE_MARKERS`, `detect`, `TRANSFORMS`, `apply_transform`.
8
+
9
+ ## THE NO-SITE-NAME RULE (enforced in CI)
10
+
11
+ `engine/**` must contain **zero** hard-coded site names, brands, or target domains. Site specifics belong to runtime hints or observations, never to code. `bias_check.py` is a standalone scanner enforcing this: a brand denylist, a URL regex scan, an allowlist for genuine infrastructure hosts (archive.org, r.jina.ai, google.com, httpbin.org, relay.invalid), and a `# NOTE-BIAS-OK` comment convention for legitimate exemptions such as test fixtures.
12
+
13
+ ```bash
14
+ python3 engine/bias_check.py # fails on any site-specific leak
15
+ ```
16
+
17
+ ## FETCH CHAIN PHASES
18
+
19
+ ```
20
+ fetch(url, ...) # fetch_chain.py
21
+ Phase 1 curl_probe.py — curl_cffi TLS-impersonation probe
22
+ Phase 2 grid — referer/transform/device attempt grid
23
+ Phase 2.5 surrogate.py — third-party archive/reader/proxy routes
24
+ Phase 3 executor.py — capability-matched Playwright fallback
25
+ ```
26
+
27
+ Ordering is **not** hardcoded: each `waf_profiles.yaml` profile carries a `fallback_when_challenge` list that drives the ladder. `surrogate_wayback` precedes browser executors in every profile, so archives are tried before paying for a browser spin-up.
28
+
29
+ ## PROVENANCE / TRUST CONTRACT
30
+
31
+ `result_schema.py` puts two literals on every `FetchResult`:
32
+
33
+ - `Provenance = "live" | "snapshot" | "proxy"`
34
+ - `Trust = "origin" | "archive" | "untrusted"`
35
+
36
+ A `snapshot` result carries `snapshot_timestamp` and **must** be cited with that timestamp — never presented as the live page. `surrogates.yaml` `kind` fixes these values: `archive` -> snapshot/archive, `reader` -> live, `proxy` -> proxy/untrusted.
37
+
38
+ ## SURROGATE REGISTRY (`surrogates.yaml`)
39
+
40
+ Site-agnostic infrastructure only. Every entry carries `last_verified` (ISO date); entries older than 90 days are deprioritized and flagged, because surrogate routes rot (a 2026-08 probe found 4 of 6 known routes dead or stubbed). `proxy` routes are MITM by construction: they require the explicit `--allow-proxy` flag and never receive `Cookie` or `Authorization` headers. Every surrogate response is re-validated with `target_url` set, so an interstitial or a redirect stub is rejected instead of returned as content.
41
+
42
+ ## VALIDATOR LAYERS (`validators.py`)
43
+
44
+ ```
45
+ L1 challenge markers (CHALLENGE_MARKERS)
46
+ L1.5 surrogate dead ends — interstitial titles + AMP-style redirect stubs
47
+ (is_redirect_stub(), needs target_url)
48
+ L2 size/shape fingerprints
49
+ L3+ content checks
50
+ ```
51
+
52
+ ## CLI
53
+
54
+ ```bash
55
+ python3 -m engine URL [--selector S] [--device auto|desktop|mobile]
56
+ [--timeout 25] [--max-attempts 12]
57
+ [--no-playwright] [--allow-proxy] [--json] [--trace]
58
+ ```
59
+
60
+ ## TESTS
61
+
62
+ `tests/` — `test_surrogate.py` (staleness, proxy gating, short-circuit), `test_surrogate_validators.py`, `test_fetch_chain.py`, `test_playwright_templates.py`, plus HTML/JSON fixtures under `tests/fixtures/`.
63
+
64
+ ## NOTES
65
+
66
+ - `summary.py` emits an **R7 API-first hint** after >=3 challenge verdicts against a known WAF profile: look for `/api/`, `/graphql`, or `.json` endpoints, which usually carry weaker WAF protection than the HTML surface.
67
+ - `templates/` holds the Playwright JS templates (`playwright_real_chrome.js`, `playwright_mobile_chrome.js`) the executor drives.
68
+ - `url_transforms.py` transforms stay domain-agnostic (`mobile_subdomain`, `am_prefix`, `drop_www`).
69
+ - Parent: [`packages/shared-skills/AGENTS.md`](../../../AGENTS.md).
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // omo-codex-install:7bc4b0f020f0a1b4448cc75385a7e3c60042e3b270e304d4c1a43a859e81a4c2:4c93b95fbe888175c5755a1acb72a046e2ca6abc572d7a53842a6d756711634c
2
+ // omo-codex-install:7bc4b0f020f0a1b4448cc75385a7e3c60042e3b270e304d4c1a43a859e81a4c2:54c5deff141c27a06766aaabd5a31e397f1e7f83da9ca85613b703c972c36b8f
3
3
  var __defProp = Object.defineProperty;
4
4
  var __returnValue = (v) => v;
5
5
  function __exportSetter(name, newValue) {
@@ -5904,7 +5904,7 @@ var package_default;
5904
5904
  var init_package = __esm(() => {
5905
5905
  package_default = {
5906
5906
  name: "@oh-my-opencode/omo-codex",
5907
- version: "5.0.0-beta.2",
5907
+ version: "5.0.0-beta.4",
5908
5908
  type: "module",
5909
5909
  private: true,
5910
5910
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -0,0 +1,69 @@
1
+ # ultimate-browsing/engine — Generic WAF-Profile Fetch Chain (Python)
2
+
3
+ **Generated:** 2026-08-10 / 38d268995
4
+
5
+ ## OVERVIEW
6
+
7
+ A 17-module Python package embedded in the `ultimate-browsing` skill: a site-agnostic fetch chain that escalates from a cheap curl probe to a real browser, with declarative WAF and surrogate registries. Not "optional scripts" — it has its own CLI entry (`python3 -m engine URL`), two YAML config schemas, a 4-file test suite, and a standalone CI guard. Package exports (`__init__.py`): `fetch`, `FetchResult`, `Attempt`, `Verdict`, `ValidationResult`, `validate`, `CHALLENGE_MARKERS`, `detect`, `TRANSFORMS`, `apply_transform`.
8
+
9
+ ## THE NO-SITE-NAME RULE (enforced in CI)
10
+
11
+ `engine/**` must contain **zero** hard-coded site names, brands, or target domains. Site specifics belong to runtime hints or observations, never to code. `bias_check.py` is a standalone scanner enforcing this: a brand denylist, a URL regex scan, an allowlist for genuine infrastructure hosts (archive.org, r.jina.ai, google.com, httpbin.org, relay.invalid), and a `# NOTE-BIAS-OK` comment convention for legitimate exemptions such as test fixtures.
12
+
13
+ ```bash
14
+ python3 engine/bias_check.py # fails on any site-specific leak
15
+ ```
16
+
17
+ ## FETCH CHAIN PHASES
18
+
19
+ ```
20
+ fetch(url, ...) # fetch_chain.py
21
+ Phase 1 curl_probe.py — curl_cffi TLS-impersonation probe
22
+ Phase 2 grid — referer/transform/device attempt grid
23
+ Phase 2.5 surrogate.py — third-party archive/reader/proxy routes
24
+ Phase 3 executor.py — capability-matched Playwright fallback
25
+ ```
26
+
27
+ Ordering is **not** hardcoded: each `waf_profiles.yaml` profile carries a `fallback_when_challenge` list that drives the ladder. `surrogate_wayback` precedes browser executors in every profile, so archives are tried before paying for a browser spin-up.
28
+
29
+ ## PROVENANCE / TRUST CONTRACT
30
+
31
+ `result_schema.py` puts two literals on every `FetchResult`:
32
+
33
+ - `Provenance = "live" | "snapshot" | "proxy"`
34
+ - `Trust = "origin" | "archive" | "untrusted"`
35
+
36
+ A `snapshot` result carries `snapshot_timestamp` and **must** be cited with that timestamp — never presented as the live page. `surrogates.yaml` `kind` fixes these values: `archive` -> snapshot/archive, `reader` -> live, `proxy` -> proxy/untrusted.
37
+
38
+ ## SURROGATE REGISTRY (`surrogates.yaml`)
39
+
40
+ Site-agnostic infrastructure only. Every entry carries `last_verified` (ISO date); entries older than 90 days are deprioritized and flagged, because surrogate routes rot (a 2026-08 probe found 4 of 6 known routes dead or stubbed). `proxy` routes are MITM by construction: they require the explicit `--allow-proxy` flag and never receive `Cookie` or `Authorization` headers. Every surrogate response is re-validated with `target_url` set, so an interstitial or a redirect stub is rejected instead of returned as content.
41
+
42
+ ## VALIDATOR LAYERS (`validators.py`)
43
+
44
+ ```
45
+ L1 challenge markers (CHALLENGE_MARKERS)
46
+ L1.5 surrogate dead ends — interstitial titles + AMP-style redirect stubs
47
+ (is_redirect_stub(), needs target_url)
48
+ L2 size/shape fingerprints
49
+ L3+ content checks
50
+ ```
51
+
52
+ ## CLI
53
+
54
+ ```bash
55
+ python3 -m engine URL [--selector S] [--device auto|desktop|mobile]
56
+ [--timeout 25] [--max-attempts 12]
57
+ [--no-playwright] [--allow-proxy] [--json] [--trace]
58
+ ```
59
+
60
+ ## TESTS
61
+
62
+ `tests/` — `test_surrogate.py` (staleness, proxy gating, short-circuit), `test_surrogate_validators.py`, `test_fetch_chain.py`, `test_playwright_templates.py`, plus HTML/JSON fixtures under `tests/fixtures/`.
63
+
64
+ ## NOTES
65
+
66
+ - `summary.py` emits an **R7 API-first hint** after >=3 challenge verdicts against a known WAF profile: look for `/api/`, `/graphql`, or `.json` endpoints, which usually carry weaker WAF protection than the HTML surface.
67
+ - `templates/` holds the Playwright JS templates (`playwright_real_chrome.js`, `playwright_mobile_chrome.js`) the executor drives.
68
+ - `url_transforms.py` transforms stay domain-agnostic (`mobile_subdomain`, `am_prefix`, `drop_www`).
69
+ - Parent: [`packages/shared-skills/AGENTS.md`](../../../AGENTS.md).