openAgent
gitlabThe open source UNIVERSAL agent.
clone
https://gitlab.com/bitzzdev/openAgent.gitAIagentautomationopen-sourceuniversal-agent
import { describe, expect } from "bun:test"import { Effect } from "effect"import path from "path"import { cliIt } from "../lib/cli-process"describe("opencode mcp add (non-interactive subprocess)", () => {cliIt.concurrent("adds a remote server with HTTP headers",({ home, opencode }) =>Effect.gen(function* () {const result = yield* opencode.spawn(["mcp","add","github","--url","https://example.com/mcp","--header","Authorization=Bearer {env:GITHUB_TOKEN}","--header","X-Option=one=two",])opencode.expectExit(result, 0)const config = yield* Effect.promise(() =>Bun.file(path.join(home, ".config", "opencode", "opencode.json")).json(),)expect(config.mcp.github).toEqual({type: "remote",url: "https://example.com/mcp",headers: {Authorization: "Bearer {env:GITHUB_TOKEN}","X-Option": "one=two",},})}),60_000,)cliIt.concurrent("adds a local server while preserving argv and environment values",({ home, opencode }) =>Effect.gen(function* () {const result = yield* opencode.spawn(["mcp","add","local","--env","API_KEY=secret","--env","VALUE=one=two","--","npx","-y","@example/server","--label","two words",])opencode.expectExit(result, 0)const config = yield* Effect.promise(() =>Bun.file(path.join(home, ".config", "opencode", "opencode.json")).json(),)expect(config.mcp.local).toEqual({type: "local",command: ["npx", "-y", "@example/server", "--label", "two words"],environment: {API_KEY: "secret",VALUE: "one=two",},})}),60_000,)})