lazycodex-ai 5.0.0-beta.36 → 5.0.0-beta.38

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 (61) hide show
  1. package/dist/cli/index.js +27 -18
  2. package/dist/cli-node/index.js +27 -18
  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/dist/cli.js +10 -1
  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 +2 -2
  26. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  27. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +32 -20
  28. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.d.ts +3 -0
  29. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.js +31 -29
  30. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +2 -2
  31. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  32. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +2 -0
  34. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-artifacts.ts +36 -35
  35. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +2 -1
  36. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +43 -3
  37. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  58. package/packages/omo-codex/plugin/package-lock.json +12 -12
  59. package/packages/omo-codex/plugin/package.json +1 -1
  60. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +2 -0
  61. package/packages/omo-codex/scripts/install-dist/install-local.mjs +12 -3
package/dist/cli/index.js CHANGED
@@ -54,7 +54,7 @@ var package_default;
54
54
  var init_package = __esm(() => {
55
55
  package_default = {
56
56
  name: "oh-my-opencode",
57
- version: "5.0.0-beta.36",
57
+ version: "5.0.0-beta.38",
58
58
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
59
59
  main: "./dist/index.js",
60
60
  types: "dist/index.d.ts",
@@ -165,8 +165,8 @@ var init_package = __esm(() => {
165
165
  "install:codex-dev": "bun run script/build-codex-install.ts && bun run script/install-codex-dev.ts",
166
166
  "build:codex-plugin": "npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build",
167
167
  "build:senpi-plugin": "bun run build:lsp-daemon && bun run build:ast-grep-mcp && bun run build:senpi-plugin:stage",
168
- "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
169
- "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
168
+ "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
169
+ "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
170
170
  "build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
171
171
  "build:shared-skills-assets": "bun run build:materialize-frontend && rm -rf dist/skills && cp -R packages/shared-skills/skills dist/skills",
172
172
  "build:lsp-tools-mcp": "npm --prefix packages/lsp-tools-mcp ci && npm --prefix packages/lsp-tools-mcp run build",
@@ -234,7 +234,7 @@ var init_package = __esm(() => {
234
234
  zod: "^4.4.3"
235
235
  },
236
236
  devDependencies: {
237
- "@code-yeongyu/senpi": "2026.9.3-2",
237
+ "@code-yeongyu/senpi": "2026.9.3-3",
238
238
  "@oh-my-opencode/agents-md-core": "workspace:*",
239
239
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
240
240
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -275,18 +275,18 @@ var init_package = __esm(() => {
275
275
  typescript: "^7.0.2"
276
276
  },
277
277
  optionalDependencies: {
278
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.36",
279
- "oh-my-opencode-darwin-x64": "5.0.0-beta.36",
280
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.36",
281
- "oh-my-opencode-linux-arm64": "5.0.0-beta.36",
282
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.36",
283
- "oh-my-opencode-linux-x64": "5.0.0-beta.36",
284
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.36",
285
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.36",
286
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.36",
287
- "oh-my-opencode-windows-arm64": "5.0.0-beta.36",
288
- "oh-my-opencode-windows-x64": "5.0.0-beta.36",
289
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.36"
278
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.38",
279
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.38",
280
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.38",
281
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.38",
282
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.38",
283
+ "oh-my-opencode-linux-x64": "5.0.0-beta.38",
284
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.38",
285
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.38",
286
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.38",
287
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.38",
288
+ "oh-my-opencode-windows-x64": "5.0.0-beta.38",
289
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.38"
290
290
  },
291
291
  overrides: {
292
292
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -94349,7 +94349,7 @@ var package_default2;
94349
94349
  var init_package2 = __esm(() => {
94350
94350
  package_default2 = {
94351
94351
  name: "@oh-my-opencode/omo-codex",
94352
- version: "5.0.0-beta.36",
94352
+ version: "5.0.0-beta.38",
94353
94353
  type: "module",
94354
94354
  private: true,
94355
94355
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -99544,6 +99544,15 @@ function replaceOrInsertRootSetting(config3, key, value) {
99544
99544
 
99545
99545
  ${suffix.trimStart()}`;
99546
99546
  }
99547
+ function removeRootSetting(config3, key) {
99548
+ const sectionStart = findFirstTableStart(config3);
99549
+ const root = config3.slice(0, sectionStart);
99550
+ const suffix = config3.slice(sectionStart);
99551
+ const linePattern = new RegExp(`^[ \\t]*${escapeRegExp(key)}[ \\t]*=.*(?:\\n|$)`, "m");
99552
+ if (!linePattern.test(root))
99553
+ return config3;
99554
+ return root.replace(linePattern, "") + suffix;
99555
+ }
99547
99556
  function replaceOrInsertRootDottedSetting(config3, keyPath, value) {
99548
99557
  const targetPath = parseTomlDottedKey(keyPath);
99549
99558
  if (!targetPath)
@@ -100296,7 +100305,7 @@ var AUTONOMOUS_FEATURES = ["multi_agent", "unified_exec", "goals"];
100296
100305
  function ensureAutonomousPermissions(config3) {
100297
100306
  let next = replaceOrInsertRootSetting(config3, "approval_policy", JSON.stringify("never"));
100298
100307
  next = replaceOrInsertRootSetting(next, "sandbox_mode", JSON.stringify("danger-full-access"));
100299
- next = replaceOrInsertRootSetting(next, "network_access", JSON.stringify("enabled"));
100308
+ next = removeRootSetting(next, "network_access");
100300
100309
  for (const featureName of AUTONOMOUS_FEATURES) {
100301
100310
  next = ensureFeatureEnabled(next, featureName);
100302
100311
  }
@@ -55,7 +55,7 @@ var package_default;
55
55
  var init_package = __esm(() => {
56
56
  package_default = {
57
57
  name: "oh-my-opencode",
58
- version: "5.0.0-beta.36",
58
+ version: "5.0.0-beta.38",
59
59
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
60
60
  main: "./dist/index.js",
61
61
  types: "dist/index.d.ts",
@@ -166,8 +166,8 @@ var init_package = __esm(() => {
166
166
  "install:codex-dev": "bun run script/build-codex-install.ts && bun run script/install-codex-dev.ts",
167
167
  "build:codex-plugin": "npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build",
168
168
  "build:senpi-plugin": "bun run build:lsp-daemon && bun run build:ast-grep-mcp && bun run build:senpi-plugin:stage",
169
- "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
170
- "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
169
+ "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
170
+ "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-agent-toolkit.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
171
171
  "build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
172
172
  "build:shared-skills-assets": "bun run build:materialize-frontend && rm -rf dist/skills && cp -R packages/shared-skills/skills dist/skills",
173
173
  "build:lsp-tools-mcp": "npm --prefix packages/lsp-tools-mcp ci && npm --prefix packages/lsp-tools-mcp run build",
@@ -235,7 +235,7 @@ var init_package = __esm(() => {
235
235
  zod: "^4.4.3"
236
236
  },
237
237
  devDependencies: {
238
- "@code-yeongyu/senpi": "2026.9.3-2",
238
+ "@code-yeongyu/senpi": "2026.9.3-3",
239
239
  "@oh-my-opencode/agents-md-core": "workspace:*",
240
240
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
241
241
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -276,18 +276,18 @@ var init_package = __esm(() => {
276
276
  typescript: "^7.0.2"
277
277
  },
278
278
  optionalDependencies: {
279
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.36",
280
- "oh-my-opencode-darwin-x64": "5.0.0-beta.36",
281
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.36",
282
- "oh-my-opencode-linux-arm64": "5.0.0-beta.36",
283
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.36",
284
- "oh-my-opencode-linux-x64": "5.0.0-beta.36",
285
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.36",
286
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.36",
287
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.36",
288
- "oh-my-opencode-windows-arm64": "5.0.0-beta.36",
289
- "oh-my-opencode-windows-x64": "5.0.0-beta.36",
290
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.36"
279
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.38",
280
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.38",
281
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.38",
282
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.38",
283
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.38",
284
+ "oh-my-opencode-linux-x64": "5.0.0-beta.38",
285
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.38",
286
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.38",
287
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.38",
288
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.38",
289
+ "oh-my-opencode-windows-x64": "5.0.0-beta.38",
290
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.38"
291
291
  },
292
292
  overrides: {
293
293
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -94428,7 +94428,7 @@ var package_default2;
94428
94428
  var init_package2 = __esm(() => {
94429
94429
  package_default2 = {
94430
94430
  name: "@oh-my-opencode/omo-codex",
94431
- version: "5.0.0-beta.36",
94431
+ version: "5.0.0-beta.38",
94432
94432
  type: "module",
94433
94433
  private: true,
94434
94434
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -99623,6 +99623,15 @@ function replaceOrInsertRootSetting(config3, key, value) {
99623
99623
 
99624
99624
  ${suffix.trimStart()}`;
99625
99625
  }
99626
+ function removeRootSetting(config3, key) {
99627
+ const sectionStart = findFirstTableStart(config3);
99628
+ const root = config3.slice(0, sectionStart);
99629
+ const suffix = config3.slice(sectionStart);
99630
+ const linePattern = new RegExp(`^[ \\t]*${escapeRegExp(key)}[ \\t]*=.*(?:\\n|$)`, "m");
99631
+ if (!linePattern.test(root))
99632
+ return config3;
99633
+ return root.replace(linePattern, "") + suffix;
99634
+ }
99626
99635
  function replaceOrInsertRootDottedSetting(config3, keyPath, value) {
99627
99636
  const targetPath = parseTomlDottedKey(keyPath);
99628
99637
  if (!targetPath)
@@ -100375,7 +100384,7 @@ var AUTONOMOUS_FEATURES = ["multi_agent", "unified_exec", "goals"];
100375
100384
  function ensureAutonomousPermissions(config3) {
100376
100385
  let next = replaceOrInsertRootSetting(config3, "approval_policy", JSON.stringify("never"));
100377
100386
  next = replaceOrInsertRootSetting(next, "sandbox_mode", JSON.stringify("danger-full-access"));
100378
- next = replaceOrInsertRootSetting(next, "network_access", JSON.stringify("enabled"));
100387
+ next = removeRootSetting(next, "network_access");
100379
100388
  for (const featureName of AUTONOMOUS_FEATURES) {
100380
100389
  next = ensureFeatureEnabled(next, featureName);
100381
100390
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazycodex-ai",
3
- "version": "5.0.0-beta.36",
3
+ "version": "5.0.0-beta.38",
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.36",
3
+ "version": "5.0.0-beta.38",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -1094,6 +1094,15 @@ function replaceOrInsertRootSetting(config, key, value) {
1094
1094
 
1095
1095
  ${suffix.trimStart()}`;
1096
1096
  }
1097
+ function removeRootSetting(config, key) {
1098
+ const sectionStart = findFirstTableStart(config);
1099
+ const root = config.slice(0, sectionStart);
1100
+ const suffix = config.slice(sectionStart);
1101
+ const linePattern = new RegExp(`^[ \\t]*${escapeRegExp(key)}[ \\t]*=.*(?:\\n|$)`, "m");
1102
+ if (!linePattern.test(root))
1103
+ return config;
1104
+ return root.replace(linePattern, "") + suffix;
1105
+ }
1097
1106
  function replaceOrInsertRootDottedSetting(config, keyPath, value) {
1098
1107
  const targetPath = parseTomlDottedKey(keyPath);
1099
1108
  if (!targetPath)
@@ -2829,7 +2838,7 @@ var AUTONOMOUS_FEATURES = ["multi_agent", "unified_exec", "goals"];
2829
2838
  function ensureAutonomousPermissions(config) {
2830
2839
  let next = replaceOrInsertRootSetting(config, "approval_policy", JSON.stringify("never"));
2831
2840
  next = replaceOrInsertRootSetting(next, "sandbox_mode", JSON.stringify("danger-full-access"));
2832
- next = replaceOrInsertRootSetting(next, "network_access", JSON.stringify("enabled"));
2841
+ next = removeRootSetting(next, "network_access");
2833
2842
  for (const featureName of AUTONOMOUS_FEATURES) {
2834
2843
  next = ensureFeatureEnabled(next, featureName);
2835
2844
  }
@@ -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.36) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.0.0-beta.36) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36",
4
- "inputDigest": "sha256:558ef72cedeb3dd7f45ca67a3062270f88bb9906f5f57ec2f1cd36570ad3ab8d",
3
+ "version": "5.0.0-beta.38",
4
+ "inputDigest": "sha256:d95f42f2b3a16266c924a943ca2caa17b8cf83ae0b116a281aebf1a51316d918",
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.36) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.0.0-beta.36) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.36) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.0.0-beta.38) 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.36",
3
+ "version": "5.0.0-beta.38",
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.0.0-beta.36) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.0.0-beta.38) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook subagent-stop",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.0.0-beta.36) Checking Ulw-Execute Continuation"
22
+ "statusMessage": "(OmO 5.0.0-beta.38) Checking Ulw-Execute Continuation"
23
23
  }
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.0.0-beta.36",
3
+ "version": "5.0.0-beta.38",
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",
@@ -768,34 +768,46 @@ function literal(value, expected, field) {
768
768
  }
769
769
 
770
770
  // components/ulw-loop/src/quality-gate-artifacts.ts
771
+ var SUPPORTED_SURFACES = ["cli", "http", "tmux", "browser", "gui", "data"];
772
+ var SUPPORTED_KINDS = [
773
+ "cli-transcript",
774
+ "log",
775
+ "screenshot",
776
+ "image",
777
+ "http-dump",
778
+ "data-diff"
779
+ ];
780
+ var COMPATIBLE_KINDS = {
781
+ cli: ["cli-transcript", "log"],
782
+ tmux: ["cli-transcript", "log"],
783
+ http: ["http-dump"],
784
+ browser: ["screenshot", "image"],
785
+ gui: ["screenshot", "image"],
786
+ data: ["data-diff"]
787
+ };
788
+ function isSupportedSurface(value) {
789
+ return SUPPORTED_SURFACES.some((surface) => surface === value);
790
+ }
791
+ function isSupportedKind(value) {
792
+ return SUPPORTED_KINDS.some((kind) => kind === value);
793
+ }
771
794
  function surfaceField(value, field) {
772
- if (value === "cli" || value === "http" || value === "tmux" || value === "browser" || value === "gui" || value === "data")
795
+ if (isSupportedSurface(value))
773
796
  return value;
774
- invalid(`${field} must be a supported manual QA surface.`, field);
797
+ invalid(`${field} must be a supported manual QA surface (${SUPPORTED_SURFACES.join(", ")}).`, field);
775
798
  return "cli";
776
799
  }
777
800
  function kindField(value, field) {
778
- if (value === "cli-transcript" || value === "log" || value === "screenshot" || value === "image" || value === "http-dump" || value === "data-diff")
801
+ if (isSupportedKind(value))
779
802
  return value;
780
- invalid(`${field} must be a supported artifact kind.`, field);
803
+ invalid(`${field} must be a supported artifact kind (${SUPPORTED_KINDS.join(", ")}); review/QA reports belong in codeReview.reportPath or gateReview.reportPath, not artifactRefs.`, field);
781
804
  return "log";
782
805
  }
806
+ function compatibleKindsFor(surface) {
807
+ return COMPATIBLE_KINDS[surface];
808
+ }
783
809
  function artifactCompatible(surface, kind) {
784
- switch (surface) {
785
- case "cli":
786
- case "tmux":
787
- return kind === "cli-transcript" || kind === "log";
788
- case "http":
789
- return kind === "http-dump";
790
- case "browser":
791
- case "gui":
792
- return kind === "screenshot" || kind === "image";
793
- case "data":
794
- return kind === "data-diff";
795
- default:
796
- invalid("manualQa.surfaceEvidence has an unsupported surface.", "manualQa.surfaceEvidence.surface");
797
- return false;
798
- }
810
+ return compatibleKindsFor(surface).includes(kind);
799
811
  }
800
812
  function checkFile(path, field, opts) {
801
813
  if (opts?.repoRoot === undefined || opts.fs === undefined || isPoisoned(field))
@@ -1098,7 +1110,7 @@ function parseSurfaceEvidence(value, byId) {
1098
1110
  if (isPoisoned(`manualQa.surfaceEvidence[${index}].surface`) || isPoisonedArtifactKind(artifact.id))
1099
1111
  continue;
1100
1112
  if (!artifactCompatible(surface, artifact.kind)) {
1101
- invalid(`manualQa.surfaceEvidence ${surface} artifact ${artifact.kind} is incompatible.`, "manualQa.surfaceEvidence");
1113
+ invalid(`manualQa.surfaceEvidence ${surface} artifact ${artifact.kind} is incompatible; surface "${surface}" accepts artifact kinds: ${compatibleKindsFor(surface).join(", ")}.`, "manualQa.surfaceEvidence");
1102
1114
  }
1103
1115
  }
1104
1116
  return {
@@ -1,7 +1,10 @@
1
1
  import type { ValidateQualityGateOptions } from "./quality-gate.js";
2
2
  import type { UlwLoopManualQaArtifactKind, UlwLoopManualQaArtifactRef, UlwLoopManualQaSurface } from "./types.js";
3
+ export declare const SUPPORTED_SURFACES: readonly UlwLoopManualQaSurface[];
4
+ export declare const SUPPORTED_KINDS: readonly UlwLoopManualQaArtifactKind[];
3
5
  export declare function surfaceField(value: unknown, field: string): UlwLoopManualQaSurface;
4
6
  export declare function kindField(value: unknown, field: string): UlwLoopManualQaArtifactKind;
7
+ export declare function compatibleKindsFor(surface: UlwLoopManualQaSurface): readonly UlwLoopManualQaArtifactKind[];
5
8
  export declare function artifactCompatible(surface: UlwLoopManualQaSurface, kind: UlwLoopManualQaArtifactKind): boolean;
6
9
  export declare function checkFile(path: string, field: string, opts?: ValidateQualityGateOptions): void;
7
10
  export declare function artifactMap(refs: readonly UlwLoopManualQaArtifactRef[]): Map<string, UlwLoopManualQaArtifactRef>;