diff --git a/bun.lock b/bun.lock index 6fe23d9..cc3fcdc 100644 --- a/bun.lock +++ b/bun.lock @@ -53,7 +53,7 @@ }, "packages/plugins/nexus-service": { "name": "@microvoid/convax-plugin-nexus-service", - "version": "0.3.6", + "version": "0.3.7", "dependencies": { "@microvoid/convax-nexus-mcp": "workspace:*" } @@ -191,7 +191,7 @@ }, "packages/tools/nexus-mcp": { "name": "@microvoid/convax-nexus-mcp", - "version": "0.3.5", + "version": "0.3.6", "bin": { "convax-nexus-mcp": "dist/convax-nexus-mcp" }, diff --git a/packages/plugins/nexus-service/convax-package.json b/packages/plugins/nexus-service/convax-package.json index 65e5ab3..3cd791f 100644 --- a/packages/plugins/nexus-service/convax-package.json +++ b/packages/plugins/nexus-service/convax-package.json @@ -4,7 +4,7 @@ "id": "nexus-service", "name": "Nexus · OpenRouter", "description": "Connects Convax to the Convax Workspace in Nexus for OpenRouter chat and live image-model generation through short-lived Data Tokens.", - "version": "0.3.6", + "version": "0.3.7", "license": "MIT", "compatibility": { "pluginSchema": "convax.plugin/7", @@ -13,7 +13,7 @@ "companions": [ { "command": "convax-nexus-mcp", - "version": "0.3.5", + "version": "0.3.6", "source": "packages/tools/nexus-mcp", "targets": [ { diff --git a/packages/plugins/nexus-service/package.json b/packages/plugins/nexus-service/package.json index c885d97..a111bc7 100644 --- a/packages/plugins/nexus-service/package.json +++ b/packages/plugins/nexus-service/package.json @@ -1,6 +1,6 @@ { "name": "@microvoid/convax-plugin-nexus-service", - "version": "0.3.6", + "version": "0.3.7", "private": true, "type": "module", "dependencies": { diff --git a/packages/plugins/nexus-service/package/manifest.json b/packages/plugins/nexus-service/package/manifest.json index 2af3327..bb1fbf0 100644 --- a/packages/plugins/nexus-service/package/manifest.json +++ b/packages/plugins/nexus-service/package/manifest.json @@ -3,7 +3,7 @@ "id": "nexus-service", "name": "Nexus · OpenRouter", "description": "Connects Convax to the Convax Workspace in Nexus for OpenRouter chat and live image-model generation through short-lived Data Tokens.", - "version": "0.3.6", + "version": "0.3.7", "contributes": { "generation": { "models": [ diff --git a/packages/tools/nexus-mcp/package.json b/packages/tools/nexus-mcp/package.json index 1bbfd47..87fecd9 100644 --- a/packages/tools/nexus-mcp/package.json +++ b/packages/tools/nexus-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@microvoid/convax-nexus-mcp", - "version": "0.3.5", + "version": "0.3.6", "private": true, "license": "MIT", "type": "module", diff --git a/packages/tools/nexus-mcp/src/image-generator.ts b/packages/tools/nexus-mcp/src/image-generator.ts index 54dbd15..54c0747 100644 --- a/packages/tools/nexus-mcp/src/image-generator.ts +++ b/packages/tools/nexus-mcp/src/image-generator.ts @@ -103,7 +103,10 @@ export class NexusImageGenerator { } finally { await handle.close(); } - artifacts.push({ mimeType: image.mimeType, name, path: outputPath }); + // Convax owns output_directory and admits only portable paths relative + // to it. Keep the native path private to this writer and return the + // generated file name through the MCP result contract. + artifacts.push({ mimeType: image.mimeType, name, path: name }); } return artifacts; } catch (error) { diff --git a/packages/tools/nexus-mcp/test/image-generator.test.ts b/packages/tools/nexus-mcp/test/image-generator.test.ts index 773a4df..e5f4e57 100644 --- a/packages/tools/nexus-mcp/test/image-generator.test.ts +++ b/packages/tools/nexus-mcp/test/image-generator.test.ts @@ -70,8 +70,10 @@ describe("NexusImageGenerator", () => { expect(first[0]).toMatchObject({ mimeType: "image/png", name: "nexus-operation-123-1.png", + path: "nexus-operation-123-1.png", }); - expect(await fs.readFile(first[0]!.path)).toEqual(png); + expect(path.isAbsolute(first[0]!.path)).toBe(false); + expect(await fs.readFile(path.join(root, first[0]!.path))).toEqual(png); }); test("rejects a model that is no longer in the image-output catalog", async () => {