lazycodex-ai 4.18.0 → 4.18.2

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 (147) hide show
  1. package/dist/cli/index.js +500 -158
  2. package/dist/cli-node/index.js +500 -158
  3. package/package.json +1 -1
  4. package/packages/git-bash-mcp/dist/cli.js +81 -19
  5. package/packages/lsp-daemon/dist/cli.js +3330 -764
  6. package/packages/lsp-daemon/dist/client.d.ts +105 -0
  7. package/packages/lsp-daemon/dist/client.js +5995 -0
  8. package/packages/lsp-daemon/dist/daemon-client.d.ts +12 -7
  9. package/packages/lsp-daemon/dist/daemon-client.js +139 -32
  10. package/packages/lsp-daemon/dist/daemon-server.d.ts +1 -0
  11. package/packages/lsp-daemon/dist/daemon-server.js +40 -15
  12. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +10 -8
  13. package/packages/lsp-daemon/dist/ensure-daemon.js +135 -51
  14. package/packages/lsp-daemon/dist/index.d.ts +2 -2
  15. package/packages/lsp-daemon/dist/index.js +3093 -786
  16. package/packages/lsp-daemon/dist/ipc-protocol.d.ts +46 -0
  17. package/packages/lsp-daemon/dist/ipc-protocol.js +187 -0
  18. package/packages/lsp-daemon/dist/lock.js +14 -4
  19. package/packages/lsp-daemon/dist/ownership.d.ts +49 -0
  20. package/packages/lsp-daemon/dist/ownership.js +168 -0
  21. package/packages/lsp-daemon/dist/paths.d.ts +33 -9
  22. package/packages/lsp-daemon/dist/paths.js +72 -33
  23. package/packages/lsp-daemon/dist/proxy.d.ts +5 -0
  24. package/packages/lsp-daemon/dist/proxy.js +123 -16
  25. package/packages/lsp-daemon/dist/request-routing.d.ts +7 -2
  26. package/packages/lsp-daemon/dist/request-routing.js +71 -22
  27. package/packages/lsp-daemon/dist/run-daemon.js +9 -2
  28. package/packages/lsp-daemon/dist/runtime-contract.d.ts +21 -0
  29. package/packages/lsp-daemon/dist/runtime-contract.js +58 -0
  30. package/packages/lsp-daemon/dist/socket-jsonrpc.js +6 -1
  31. package/packages/lsp-daemon/package.json +12 -3
  32. package/packages/lsp-tools-mcp/dist/cli.js +2189 -454
  33. package/packages/lsp-tools-mcp/dist/lsp/manager.js +1741 -148
  34. package/packages/lsp-tools-mcp/dist/mcp.js +2206 -471
  35. package/packages/lsp-tools-mcp/dist/request-context.js +176 -6
  36. package/packages/lsp-tools-mcp/dist/tools.js +2119 -447
  37. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  38. package/packages/omo-codex/plugin/.mcp.json +2 -1
  39. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  40. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  41. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +100 -28
  42. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +100 -28
  43. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +21 -9
  45. package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +35 -0
  46. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +69 -0
  47. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +57 -1
  48. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  49. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  50. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  51. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  52. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  53. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  54. package/packages/omo-codex/plugin/components/lsp/.mcp.json +2 -1
  55. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +55 -0
  56. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +3033 -936
  57. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +0 -4
  58. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.d.ts +5 -2
  59. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +41 -62
  60. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.d.ts +1 -1
  61. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +24 -15
  62. package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.d.ts +3 -7
  63. package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.js +23 -49
  64. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  65. package/packages/omo-codex/plugin/components/lsp/package.json +3 -2
  66. package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-daemon.mjs +31 -1
  67. package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-daemon.test.mjs +76 -0
  68. package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.mjs +201 -0
  69. package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.test.mjs +55 -0
  70. package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +0 -4
  71. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +49 -71
  72. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +26 -15
  73. package/packages/omo-codex/plugin/components/lsp/src/lsp-session-state.ts +26 -64
  74. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +16 -17
  75. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +30 -4
  76. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +20 -5
  77. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +1 -1
  78. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -3
  79. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  80. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  81. package/packages/omo-codex/plugin/components/start-work-continuation/README.md +2 -2
  82. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +3 -3
  83. package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +2 -2
  84. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  85. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  86. package/packages/omo-codex/plugin/components/start-work-continuation/src/boulder-reader.ts +1 -1
  87. package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +1 -1
  88. package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +15 -1
  89. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +20 -0
  90. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  91. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  92. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  93. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  94. package/packages/omo-codex/plugin/components/ultrawork/directive.md +50 -33
  95. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  96. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  97. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +50 -33
  98. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +50 -33
  99. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +3 -3
  100. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +5 -6
  101. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  102. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  103. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
  104. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +6 -5
  105. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +5 -6
  106. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +2 -2
  107. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  115. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  119. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  120. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  121. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  122. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  123. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  124. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  125. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  126. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  127. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  128. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  129. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  130. package/packages/omo-codex/plugin/package-lock.json +26 -14
  131. package/packages/omo-codex/plugin/package.json +1 -1
  132. package/packages/omo-codex/plugin/scripts/build-bundled-mcp-runtimes.mjs +2 -3
  133. package/packages/omo-codex/plugin/scripts/build-components.mjs +13 -1
  134. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +9 -1
  135. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +7 -0
  136. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +2 -1
  137. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +50 -33
  138. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  139. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +6 -5
  140. package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +8 -0
  141. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +128 -15
  142. package/packages/omo-codex/plugin/test/install-time-build-runtime.test.mjs +10 -0
  143. package/packages/omo-codex/plugin/test/lsp-prebuild-layouts.test.mjs +2 -0
  144. package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -0
  145. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +7 -0
  146. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +34 -3
  147. package/packages/omo-codex/scripts/install-dist/install-local.mjs +328 -63
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from "bun:test";
2
2
  import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- import { PassThrough } from "node:stream";
4
+ import { PassThrough, Writable } from "node:stream";
5
5
  import { fileURLToPath } from "node:url";
6
6
 
7
7
  import { runCodegraphServe } from "../src/serve.ts";
@@ -14,6 +14,7 @@ import {
14
14
  recordValue,
15
15
  stringProperty,
16
16
  writeFakeContractCodegraph,
17
+ writeFakeHeldOpenCodegraph,
17
18
  writeFakeNewlineCodegraph,
18
19
  } from "./mcp-bridge-fixtures.ts";
19
20
 
@@ -190,4 +191,59 @@ describe("runCodegraphServe MCP protocol bridge", () => {
190
191
  rmSync(tempRoot, { recursive: true, force: true });
191
192
  }
192
193
  });
194
+
195
+ it("#given a held-open Codegraph child and closed parent output #when response forwarding fails #then the child is terminated before rejection", async () => {
196
+ const tempRoot = mkdtempSync(join(componentRoot, ".tmp-codegraph-output-failure-"));
197
+ const projectRoot = join(tempRoot, "project");
198
+ const fakeCodegraph = join(tempRoot, "codegraph-held-open.cjs");
199
+ const childPidFile = join(tempRoot, "child.pid");
200
+ const input = new PassThrough();
201
+ const outputError = Object.assign(new Error("parent output closed"), { code: "EPIPE" });
202
+ const output = new Writable({
203
+ write(_chunk, _encoding, callback) {
204
+ callback(outputError);
205
+ },
206
+ });
207
+ let childPid: number | undefined;
208
+
209
+ try {
210
+ mkdirSync(projectRoot, { recursive: true });
211
+ writeFakeHeldOpenCodegraph(fakeCodegraph);
212
+ const run = runCodegraphServe({
213
+ cwd: tempRoot,
214
+ env: {
215
+ CODEGRAPH_ALLOW_UNSAFE_NODE: "1",
216
+ CODEGRAPH_FAKE_LOG: childPidFile,
217
+ OMO_CODEGRAPH_BIN: fakeCodegraph,
218
+ OMO_CODEGRAPH_PROJECT_CWD: projectRoot,
219
+ PATH: process.env["PATH"],
220
+ },
221
+ nodeVersion: "22.14.0",
222
+ buildEnv: () => ({}),
223
+ resolve: () => ({ argsPrefix: [], command: fakeCodegraph, exists: true, source: "env" }),
224
+ stderr: { write: () => undefined },
225
+ stdin: input,
226
+ stdout: output,
227
+ });
228
+
229
+ input.end(frameMcpRequest({ id: 1, method: "tools/list", params: {} }));
230
+
231
+ await expect(run).rejects.toBe(outputError);
232
+ childPid = Number(readFileSync(childPidFile, "utf8"));
233
+ expect(isProcessAlive(childPid)).toBe(false);
234
+ } finally {
235
+ if (childPid !== undefined && isProcessAlive(childPid)) process.kill(childPid, "SIGKILL");
236
+ rmSync(tempRoot, { recursive: true, force: true });
237
+ }
238
+ });
193
239
  });
240
+
241
+ function isProcessAlive(pid: number): boolean {
242
+ try {
243
+ process.kill(pid, 0);
244
+ return true;
245
+ } catch (error) {
246
+ if (error instanceof Error && "code" in error && error.code === "ESRCH") return false;
247
+ throw error;
248
+ }
249
+ }
@@ -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 4.18.0) Checking Comments"
11
+ "statusMessage": "(OmO 4.18.2) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "4.18.0",
3
+ "version": "4.18.2",
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 4.18.0) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 4.18.2) 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 4.18.0) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 4.18.2) 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": "4.18.0",
3
+ "version": "4.18.2",
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 4.18.0) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 4.18.2) 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": "4.18.0",
3
+ "version": "4.18.2",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -3,7 +3,8 @@
3
3
  "lsp": {
4
4
  "command": "node",
5
5
  "args": ["../../../../lsp-daemon/dist/cli.js", "mcp"],
6
- "cwd": "."
6
+ "cwd": ".",
7
+ "startup_timeout_sec": 10
7
8
  }
8
9
  }
9
10
  }
@@ -0,0 +1,55 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "4.18.2",
4
+ "inputDigest": "sha256:5f242410eb12245b588135e29137ee9e7a0fdb2346469bdfdb75727b2abaf248",
5
+ "outputs": [
6
+ {
7
+ "path": "cli.d.ts",
8
+ "sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"
9
+ },
10
+ {
11
+ "path": "cli.js",
12
+ "sha256": "e92c3fee5795bf44de9504b0e85c2be208c78a31e966ec9a7a807d621431c74a"
13
+ },
14
+ {
15
+ "path": "codex-hook-cli.d.ts",
16
+ "sha256": "bd48e303e97da1d606dff5fa073090d494ed489f9d4f51a5ff566e97b708d34b"
17
+ },
18
+ {
19
+ "path": "codex-hook-cli.js",
20
+ "sha256": "bc83ec2045b69fc7ecff052262c675757dbb2a66168b40eae7541214736c4fd3"
21
+ },
22
+ {
23
+ "path": "codex-hook.d.ts",
24
+ "sha256": "70537f67c91bb7b72242396831d4441ead673336537e1f07d94df055d887aeac"
25
+ },
26
+ {
27
+ "path": "codex-hook.js",
28
+ "sha256": "9a4f53b980521752f603c9a46de8001294c1b964a31f7945eb48ecdae4bf12ac"
29
+ },
30
+ {
31
+ "path": "daemon-cli-path.d.ts",
32
+ "sha256": "a44c2c2a0edbfa5489a094d875a2cf2a282f1c089bbc315fe70f205a0d7dd526"
33
+ },
34
+ {
35
+ "path": "daemon-cli-path.js",
36
+ "sha256": "5c34353638e95d4a98664c8d23516475e850983e81900aa40e03752946162830"
37
+ },
38
+ {
39
+ "path": "lsp-session-state.d.ts",
40
+ "sha256": "403a805ef4c42eae0954c9f39432d0d132b65b6ab066e345aee1dbd383b524e0"
41
+ },
42
+ {
43
+ "path": "lsp-session-state.js",
44
+ "sha256": "d9c1f4bbace5a8a1fad3d0c3d225e4019700946b2391d1d5ae4d2362ca2e495f"
45
+ },
46
+ {
47
+ "path": "mutated-file-paths.d.ts",
48
+ "sha256": "a049a783e853964aa88b5a604441540acb56ec91f7b7c5c728cce28d86a6942f"
49
+ },
50
+ {
51
+ "path": "mutated-file-paths.js",
52
+ "sha256": "bf9d07872875bb1581d5e446b565b903cc24800836bd1dfdfdab8d3efadd963f"
53
+ }
54
+ ]
55
+ }