oh-my-opencode 5.1.46 → 5.1.47

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 (101) hide show
  1. package/.agents/command/publish.md +3 -4
  2. package/.agents/skills/publish/SKILL.md +3 -4
  3. package/.opencode/command/publish.md +3 -4
  4. package/dist/agents/atlas/agent.d.ts +3 -2
  5. package/dist/agents/sisyphus/index.d.ts +1 -0
  6. package/dist/agents/sisyphus/kimi-k3-1.d.ts +9 -0
  7. package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
  8. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  9. package/dist/agents/sisyphus-junior/index.d.ts +1 -0
  10. package/dist/agents/sisyphus-junior/kimi-k3-1.d.ts +6 -0
  11. package/dist/agents/types.d.ts +2 -2
  12. package/dist/cli/index.js +29 -21
  13. package/dist/cli/service-auth/keystore.d.ts +8 -3
  14. package/dist/cli-node/index.js +29 -21
  15. package/dist/index.js +634 -17
  16. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  17. package/dist/skills/ulw-research/SKILL.md +1 -1
  18. package/dist/skills/ulw-research/references/deliverable-phase.md +9 -2
  19. package/dist/skills/ulw-research/scripts/copy-returns-polish.test.ts +209 -0
  20. package/dist/skills/ulw-research/scripts/fact-commands-meaning.mjs +7 -22
  21. package/dist/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  22. package/dist/skills/ulw-research/scripts/fact-commands-verify.mjs +19 -0
  23. package/dist/skills/ulw-research/scripts/fact-commands.mjs +4 -2
  24. package/dist/skills/ulw-research/scripts/fact-pairs.mjs +7 -9
  25. package/dist/skills/ulw-research/scripts/fact-pairs.test.ts +7 -23
  26. package/dist/skills/ulw-research/scripts/references-fences.test.ts +25 -0
  27. package/dist/skills/ulw-research/scripts/report-tools.test.ts +87 -0
  28. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/polish-edits.json +12 -0
  29. package/dist/tui.js +13 -13
  30. package/package.json +13 -13
  31. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  32. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +1 -2
  33. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  36. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  40. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  41. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  42. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  43. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  45. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  46. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  47. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  48. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  49. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  50. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  51. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  52. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  53. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  54. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  55. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  77. package/packages/omo-codex/plugin/package-lock.json +12 -12
  78. package/packages/omo-codex/plugin/package.json +1 -1
  79. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +1 -1
  80. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  81. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +9 -2
  82. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +7 -22
  83. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  84. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +19 -0
  85. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +4 -2
  86. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +7 -9
  87. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
  88. package/packages/omo-codex/scripts/install-dist/install-local.mjs +4 -5
  89. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  90. package/packages/shared-skills/skills/ulw-research/SKILL.md +1 -1
  91. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +9 -2
  92. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns-polish.test.ts +209 -0
  93. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +7 -22
  94. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  95. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +19 -0
  96. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +4 -2
  97. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +7 -9
  98. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +7 -23
  99. package/packages/shared-skills/skills/ulw-research/scripts/references-fences.test.ts +25 -0
  100. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +87 -0
  101. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/polish-edits.json +12 -0
@@ -0,0 +1,25 @@
1
+ // Every references/*.md must have balanced code fences: an unclosed fence renders prose as code
2
+ // and flips every later fence in the file. md-lite is the parser the skill's own tools use.
3
+ import { describe, expect, test } from "bun:test"
4
+ import { readdirSync, readFileSync } from "node:fs"
5
+ import { join } from "node:path"
6
+
7
+ import { parseMarkdown } from "./md-lite.mjs"
8
+
9
+ const REFERENCES = join(import.meta.dir, "..", "references")
10
+ const FILES = readdirSync(REFERENCES).filter((name) => name.endsWith(".md")).sort()
11
+
12
+ describe("references/*.md fence parity", () => {
13
+ test("#given the references directory #when listed #then it holds the reference pages", () => {
14
+ expect(FILES.length).toBeGreaterThan(0)
15
+ })
16
+
17
+ for (const name of FILES) {
18
+ test(`#given ${name} #when its fences are counted #then the count is even and md-lite reports no problem`, () => {
19
+ const text = readFileSync(join(REFERENCES, name), "utf8")
20
+ const fences = text.split("\n").filter((line) => /^ {0,3}(`{3,}|~{3,})/u.test(line))
21
+ expect(fences.length % 2, `${name} has ${fences.length} fence lines`).toBe(0)
22
+ expect(parseMarkdown(text).problems).toEqual([])
23
+ })
24
+ }
25
+ })
@@ -8,6 +8,7 @@ import { PROMOTION } from "./fact-commands-meaning.mjs"
8
8
  import { writeFidelityRecord } from "./fidelity-records.mjs"
9
9
  import { PAIR_KINDS } from "./fact-pairs.mjs"
10
10
  import { VERDICT_SCHEMA } from "./meaning-check.mjs"
11
+ import { POLISH_MARKUP_REASON } from "./polish-apply.mjs"
11
12
  import { COMMANDS, run } from "./report-tools.mjs"
12
13
 
13
14
  const SCRIPT = join(import.meta.dir, "report-tools.mjs")
@@ -503,6 +504,92 @@ describe("meaning verifier under node", () => {
503
504
  })
504
505
  })
505
506
 
507
+ type PolishJson = { data: { out: string; applied: number; rejected: number; unlocated: number }; defects: { code: string; index: number; reason?: string }[] }
508
+
509
+ /** A filled session whose first finding names an acquirer and a target around F1. */
510
+ function polishSession() {
511
+ const session = fidelitySession()
512
+ const { dir, s } = session
513
+ const source = readFileSync(join(dir, "report.src.html"), "utf8").replace("<p>The span length is", "<p>Acme acquired Bolt before the span length reached")
514
+ writeFileSync(join(dir, "report.src.html"), source)
515
+ nodeJson(["fact", "fill", join(dir, "report.src.html"), "--out", join(dir, "report.html"), ...s])
516
+ return session
517
+ }
518
+
519
+ function polishApply(dir: string, edits: string) {
520
+ const args = ["fact", "polish-apply", join(dir, "report.html"), "--edits", edits, "--ledger", join(dir, "fact-ledger.json"), "--out", join(dir, "report.polished.html")]
521
+ const proc = nodeJson(args)
522
+ return { ...proc, json: proc.json as unknown as PolishJson }
523
+ }
524
+
525
+ describe("polish wiring under node", () => {
526
+ test("#given the fixture edits #when fact polish-apply runs #then it exits 0, applies the wording edit, and rejects the numeral edit", () => {
527
+ const { dir } = polishSession()
528
+ const applied = polishApply(dir, join(FIDELITY, "polish-edits.json"))
529
+ const polished = readFileSync(join(dir, "report.polished.html"), "utf8")
530
+ expect(applied.code).toBe(0)
531
+ expect(applied.json.data).toMatchObject({ applied: 1, rejected: 1, unlocated: 0 })
532
+ expect(applied.json.defects.map((d) => [d.code, d.index])).toEqual([["polish_edit_rejected", 1]])
533
+ expect(polished).toContain("Collected from a single cited public page")
534
+ expect(polished).toContain("retrieved 2026-10-01")
535
+ expect(polished).not.toContain("2026-10-02")
536
+ })
537
+
538
+ test("#given an edit that adds an attribute #when polish-apply and polish-diff run #then apply refuses it as markup changed and diff exits 1", () => {
539
+ const { dir } = polishSession()
540
+ const html = readFileSync(join(dir, "report.html"), "utf8")
541
+ const edits = join(dir, "attribute.json")
542
+ writeFileSync(edits, JSON.stringify([{ before: "<h2>Findings</h2>", after: '<h2 id="findings">Findings</h2>', reason: "anchor" }]))
543
+ const applied = polishApply(dir, edits)
544
+ expect(applied.code).toBe(0)
545
+ expect(applied.json.data).toMatchObject({ applied: 0, rejected: 1, unlocated: 0 })
546
+ expect(applied.json.defects.map((d) => [d.code, d.index])).toEqual([["polish_edit_rejected", 0]])
547
+ expect(applied.json.defects[0]?.reason).toContain("markup changed")
548
+ expect(readFileSync(join(dir, "report.polished.html"), "utf8")).toBe(html)
549
+ writeFileSync(join(dir, "attribute.html"), html.replace("<h2>Findings</h2>", '<h2 id="findings">Findings</h2>'))
550
+ const diffed = nodeJson(["fact", "polish-diff", "--before", join(dir, "report.html"), "--after", join(dir, "attribute.html"), "--ledger", join(dir, "fact-ledger.json")])
551
+ expect(diffed.code).toBe(1)
552
+ expect(codesOf(diffed.json)).toContain("polish_diff_fail")
553
+ expect(JSON.stringify(diffed.json)).toContain("markup changed")
554
+ })
555
+
556
+ test("#given an edit whose before holds & #when fact polish-apply runs #then it prints polish-apply's own markup reason verbatim for that edit", () => {
557
+ const { dir } = polishSession()
558
+ const before = "Acme & Bolt"
559
+ const edits = join(dir, "ampersand.json")
560
+ writeFileSync(edits, JSON.stringify([{ before, after: "Acme and Bolt", reason: "ampersand" }]))
561
+ const applied = polishApply(dir, edits)
562
+ const line = ` rejected edit 0 ("${before}"): ${POLISH_MARKUP_REASON}`
563
+ expect(applied.code).toBe(0)
564
+ expect(applied.json.data).toMatchObject({ applied: 0, rejected: 1, unlocated: 0 })
565
+ expect(applied.json.defects.map((d) => [d.code, d.index, d.reason])).toEqual([["polish_edit_rejected", 0, POLISH_MARKUP_REASON]])
566
+ expect(applied.stderr.split("\n")).toContain(line)
567
+ })
568
+
569
+ test("#given a polished copy edited by hand #when fact polish-diff runs #then it exits 1 with polish_diff_fail", () => {
570
+ const { dir } = polishSession()
571
+ const html = readFileSync(join(dir, "report.html"), "utf8")
572
+ writeFileSync(join(dir, "hand.html"), html.replace("320 m", "321 m"))
573
+ const diffed = nodeJson(["fact", "polish-diff", "--before", join(dir, "report.html"), "--after", join(dir, "hand.html"), "--ledger", join(dir, "fact-ledger.json")])
574
+ expect(diffed.code).toBe(1)
575
+ expect(codesOf(diffed.json)).toContain("polish_diff_fail")
576
+ })
577
+
578
+ test("#given an accepted subject and object swap #when fact pairs runs with --changed-since #then only that sentence's pair is emitted, with the new text", () => {
579
+ const { dir, s } = polishSession()
580
+ const edits = join(dir, "swap.json")
581
+ writeFileSync(edits, JSON.stringify([{ before: "Acme acquired Bolt", after: "Bolt acquired Acme", reason: "word order" }]))
582
+ const applied = polishApply(dir, edits)
583
+ const map = join(dir, "report.html.fill-map.json")
584
+ const changed = nodeJson(["fact", "pairs", join(dir, "report.polished.html"), "--changed-since", map, "--out", join(dir, "pairs-changed.json"), ...s])
585
+ const written = JSON.parse(readFileSync(join(dir, "pairs-changed.json"), "utf8"))
586
+ expect(applied.json.data).toMatchObject({ applied: 1, rejected: 0 })
587
+ expect(changed.code).toBe(0)
588
+ expect(written.pairs.map((p: Pair) => [p.kind, p.fact_ids])).toEqual([["quote", ["F1"]]])
589
+ expect(written.pairs[0].sentence).toContain("Bolt acquired Acme")
590
+ })
591
+ })
592
+
506
593
  describe("markdown editions under node", () => {
507
594
  const MD = ["# Bridge", "", "## Findings", "", "The span length is {{F1:span_len}} [S4].", "", "The operator wrote {{Q1:completion}} [S4].", "", "## How this report was made", "", "Collected from one cited public page [S4].", "", "## Sources", "", "1. [S4] Bridge page, retrieved 2026-10-01.", ""].join("\n")
508
595
 
@@ -0,0 +1,12 @@
1
+ [
2
+ {
3
+ "before": "Collected from one cited public page [S4].",
4
+ "after": "Collected from a single cited public page [S4].",
5
+ "reason": "Smoother wording."
6
+ },
7
+ {
8
+ "before": "[S4] Bridge page, retrieved 2026-10-01.",
9
+ "after": "[S4] Bridge page, retrieved 2026-10-02.",
10
+ "reason": "Date typo."
11
+ }
12
+ ]
package/dist/tui.js CHANGED
@@ -75521,7 +75521,7 @@ init_shared();
75521
75521
  // package.json
75522
75522
  var package_default = {
75523
75523
  name: "oh-my-opencode",
75524
- version: "5.1.46",
75524
+ version: "5.1.47",
75525
75525
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
75526
75526
  main: "./dist/index.js",
75527
75527
  types: "dist/index.d.ts",
@@ -75767,18 +75767,18 @@ var package_default = {
75767
75767
  typescript: "^7.0.2"
75768
75768
  },
75769
75769
  optionalDependencies: {
75770
- "oh-my-opencode-darwin-arm64": "5.1.46",
75771
- "oh-my-opencode-darwin-x64": "5.1.46",
75772
- "oh-my-opencode-darwin-x64-baseline": "5.1.46",
75773
- "oh-my-opencode-linux-arm64": "5.1.46",
75774
- "oh-my-opencode-linux-arm64-musl": "5.1.46",
75775
- "oh-my-opencode-linux-x64": "5.1.46",
75776
- "oh-my-opencode-linux-x64-baseline": "5.1.46",
75777
- "oh-my-opencode-linux-x64-musl": "5.1.46",
75778
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.46",
75779
- "oh-my-opencode-windows-arm64": "5.1.46",
75780
- "oh-my-opencode-windows-x64": "5.1.46",
75781
- "oh-my-opencode-windows-x64-baseline": "5.1.46"
75770
+ "oh-my-opencode-darwin-arm64": "5.1.47",
75771
+ "oh-my-opencode-darwin-x64": "5.1.47",
75772
+ "oh-my-opencode-darwin-x64-baseline": "5.1.47",
75773
+ "oh-my-opencode-linux-arm64": "5.1.47",
75774
+ "oh-my-opencode-linux-arm64-musl": "5.1.47",
75775
+ "oh-my-opencode-linux-x64": "5.1.47",
75776
+ "oh-my-opencode-linux-x64-baseline": "5.1.47",
75777
+ "oh-my-opencode-linux-x64-musl": "5.1.47",
75778
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.47",
75779
+ "oh-my-opencode-windows-arm64": "5.1.47",
75780
+ "oh-my-opencode-windows-x64": "5.1.47",
75781
+ "oh-my-opencode-windows-x64-baseline": "5.1.47"
75782
75782
  },
75783
75783
  overrides: {
75784
75784
  hono: "^4.13.8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
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",
@@ -246,18 +246,18 @@
246
246
  "typescript": "^7.0.2"
247
247
  },
248
248
  "optionalDependencies": {
249
- "oh-my-opencode-darwin-arm64": "5.1.46",
250
- "oh-my-opencode-darwin-x64": "5.1.46",
251
- "oh-my-opencode-darwin-x64-baseline": "5.1.46",
252
- "oh-my-opencode-linux-arm64": "5.1.46",
253
- "oh-my-opencode-linux-arm64-musl": "5.1.46",
254
- "oh-my-opencode-linux-x64": "5.1.46",
255
- "oh-my-opencode-linux-x64-baseline": "5.1.46",
256
- "oh-my-opencode-linux-x64-musl": "5.1.46",
257
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.46",
258
- "oh-my-opencode-windows-arm64": "5.1.46",
259
- "oh-my-opencode-windows-x64": "5.1.46",
260
- "oh-my-opencode-windows-x64-baseline": "5.1.46"
249
+ "oh-my-opencode-darwin-arm64": "5.1.47",
250
+ "oh-my-opencode-darwin-x64": "5.1.47",
251
+ "oh-my-opencode-darwin-x64-baseline": "5.1.47",
252
+ "oh-my-opencode-linux-arm64": "5.1.47",
253
+ "oh-my-opencode-linux-arm64-musl": "5.1.47",
254
+ "oh-my-opencode-linux-x64": "5.1.47",
255
+ "oh-my-opencode-linux-x64-baseline": "5.1.47",
256
+ "oh-my-opencode-linux-x64-musl": "5.1.47",
257
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.47",
258
+ "oh-my-opencode-windows-arm64": "5.1.47",
259
+ "oh-my-opencode-windows-x64": "5.1.47",
260
+ "oh-my-opencode-windows-x64-baseline": "5.1.47"
261
261
  },
262
262
  "overrides": {
263
263
  "hono": "^4.13.8",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -10820,8 +10820,7 @@ function windowsNodeDiscoveryLines() {
10820
10820
  ' for /f "tokens=* delims= " %%N in ("!OMO_NODE_BINARY!") do set "OMO_NODE_BINARY=%%N"',
10821
10821
  ` if "!OMO_NODE_BINARY:~0,1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"`,
10822
10822
  ` if "!OMO_NODE_BINARY:~-1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"`,
10823
- ' if "!OMO_NODE_BINARY:~0,1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"',
10824
- ' if "!OMO_NODE_BINARY:~-1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"',
10823
+ ' set "OMO_NODE_BINARY=!OMO_NODE_BINARY:"=!"',
10825
10824
  ' if defined OMO_NODE_BINARY if not exist "!OMO_NODE_BINARY!" set "OMO_NODE_BINARY="',
10826
10825
  ")",
10827
10826
  'if not defined OMO_NODE_BINARY where node >nul 2>nul && set "OMO_NODE_BINARY=node"'
@@ -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.46) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.46) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.47) 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.46) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46",
4
- "inputDigest": "sha256:a4cbfb8ffa442b654814e1d86e70434c1d19d06f473eccc93bf7bbc7485336e7",
3
+ "version": "5.1.47",
4
+ "inputDigest": "sha256:6cabf483e0820d8ebb42944ea3df97bedb1fcc9362a46f2659007ffa48225e10",
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.46) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.47) 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.46) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.46) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.47) 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.46) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.47) 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.46) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.46) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Recording Spawn Admission"
23
+ "statusMessage": "(OmO 5.1.47) 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.46) Enforcing Unlimited Ulw-Loop Budget"
36
+ "statusMessage": "(OmO 5.1.47) 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.46) Guarding Ulw-Loop Spawns"
47
+ "statusMessage": "(OmO 5.1.47) 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.46) Checking Ulw-Loop Resume"
59
+ "statusMessage": "(OmO 5.1.47) 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.46",
3
+ "version": "5.1.47",
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.46) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Checking Comments",
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.1.47) 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.46) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.1.47) 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.46) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.1.47) 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
  ],