oh-my-openagent 4.5.10 → 4.5.12

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-openagent",
3
- "version": "4.5.10",
3
+ "version": "4.5.12",
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",
@@ -131,17 +131,17 @@
131
131
  "zod": "^4.4.3"
132
132
  },
133
133
  "optionalDependencies": {
134
- "oh-my-openagent-darwin-arm64": "4.5.10",
135
- "oh-my-openagent-darwin-x64": "4.5.10",
136
- "oh-my-openagent-darwin-x64-baseline": "4.5.10",
137
- "oh-my-openagent-linux-arm64": "4.5.10",
138
- "oh-my-openagent-linux-arm64-musl": "4.5.10",
139
- "oh-my-openagent-linux-x64": "4.5.10",
140
- "oh-my-openagent-linux-x64-baseline": "4.5.10",
141
- "oh-my-openagent-linux-x64-musl": "4.5.10",
142
- "oh-my-openagent-linux-x64-musl-baseline": "4.5.10",
143
- "oh-my-openagent-windows-x64": "4.5.10",
144
- "oh-my-openagent-windows-x64-baseline": "4.5.10"
134
+ "oh-my-openagent-darwin-arm64": "4.5.12",
135
+ "oh-my-openagent-darwin-x64": "4.5.12",
136
+ "oh-my-openagent-darwin-x64-baseline": "4.5.12",
137
+ "oh-my-openagent-linux-arm64": "4.5.12",
138
+ "oh-my-openagent-linux-arm64-musl": "4.5.12",
139
+ "oh-my-openagent-linux-x64": "4.5.12",
140
+ "oh-my-openagent-linux-x64-baseline": "4.5.12",
141
+ "oh-my-openagent-linux-x64-musl": "4.5.12",
142
+ "oh-my-openagent-linux-x64-musl-baseline": "4.5.12",
143
+ "oh-my-openagent-windows-x64": "4.5.12",
144
+ "oh-my-openagent-windows-x64-baseline": "4.5.12"
145
145
  },
146
146
  "overrides": {
147
147
  "hono": "^4.12.18",
@@ -20,6 +20,10 @@ if (!force && isBuildFresh(packageJson, requiredOutputs)) {
20
20
  }
21
21
 
22
22
  if (!existsSync(packageJson)) {
23
+ if (!force && requiredOutputs.every((path) => existsSync(path))) {
24
+ console.log("Using bundled lsp-tools-mcp dist.");
25
+ process.exit(0);
26
+ }
23
27
  console.error(
24
28
  `lsp-tools-mcp package metadata is missing at ${packageJson}; build packages/lsp-tools-mcp before codex-lsp`,
25
29
  );
@@ -1,5 +1,5 @@
1
1
  import assert from "node:assert/strict";
2
- import { chmod, copyFile, mkdir, mkdtemp, readFile, utimes, writeFile } from "node:fs/promises";
2
+ import { chmod, copyFile, mkdir, mkdtemp, readFile, rm, utimes, writeFile } from "node:fs/promises";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { spawnSync } from "node:child_process";
@@ -84,3 +84,21 @@ test("#given force flag #when bootstrapping #then it rebuilds even when dist exi
84
84
  assert.equal(result.status, 0);
85
85
  assert.match(await readFile(fixture.npmLog, "utf8"), /ci\nrun build\n/u);
86
86
  });
87
+
88
+ test("#given packaged dist without package metadata #when bootstrapping #then it uses bundled runtime", async () => {
89
+ // given
90
+ const fixture = await makeFixture();
91
+ await mkdir(join(fixture.root, "packages", "lsp-tools-mcp", "dist", "lsp"), { recursive: true });
92
+ await writeFile(join(fixture.root, "packages", "lsp-tools-mcp", "dist", "lsp", "manager.js"), "manager\n");
93
+ await writeFile(join(fixture.root, "packages", "lsp-tools-mcp", "dist", "tools.js"), "tools\n");
94
+ await writeFile(fixture.npmLog, "");
95
+ await rm(join(fixture.root, "packages", "lsp-tools-mcp", "package.json"));
96
+
97
+ // when
98
+ const result = runScript(fixture.script, fixture.fakeBin);
99
+
100
+ // then
101
+ assert.equal(result.status, 0, result.stderr);
102
+ assert.match(result.stdout, /Using bundled lsp-tools-mcp dist/);
103
+ assert.equal(await readFile(fixture.npmLog, "utf8"), "");
104
+ });
@@ -71,8 +71,6 @@ function isNodeError(error) {
71
71
  function parseArgs(args) {
72
72
  const parsed = {
73
73
  check: false,
74
- sourceDir: DEFAULT_SOURCE_DIR,
75
- componentDir: DEFAULT_COMPONENT_DIR,
76
74
  };
77
75
  for (let index = 0; index < args.length; index += 1) {
78
76
  const arg = args[index];
@@ -1,7 +1,8 @@
1
1
  import assert from "node:assert/strict";
2
- import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { cp, mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
+ import { spawnSync } from "node:child_process";
5
6
  import test from "node:test";
6
7
 
7
8
  const SCRIPT_PATH = new URL("./sync-telemetry-component.mjs", import.meta.url);
@@ -68,3 +69,26 @@ test("#given a missing pure telemetry source file #when sync runs #then it fails
68
69
  await rm(root, { recursive: true, force: true });
69
70
  }
70
71
  });
72
+
73
+ test("#given packaged default layout without pure telemetry source #when cli sync runs #then it exits cleanly", async () => {
74
+ // given
75
+ const root = await makeTempDir();
76
+ const scriptPath = join(root, "packages", "omo-codex", "scripts", "sync-telemetry-component.mjs");
77
+ await mkdir(join(root, "packages", "omo-codex", "scripts"), { recursive: true });
78
+ await cp(new URL("./sync-telemetry-component.mjs", import.meta.url), scriptPath);
79
+
80
+ try {
81
+ // when
82
+ const result = spawnSync(process.execPath, [scriptPath], {
83
+ encoding: "utf8",
84
+ env: {
85
+ ...process.env,
86
+ },
87
+ });
88
+
89
+ // then
90
+ assert.equal(result.status, 0, result.stderr);
91
+ } finally {
92
+ await rm(root, { recursive: true, force: true });
93
+ }
94
+ });