@mrrlin-dev/mcp 0.3.7 → 0.3.9
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/dist/bin.cjs +50 -10
- package/package.json +4 -4
package/dist/bin.cjs
CHANGED
|
@@ -20724,14 +20724,28 @@ async function installBrowser(opts = {}) {
|
|
|
20724
20724
|
}
|
|
20725
20725
|
|
|
20726
20726
|
// src/install-codex.ts
|
|
20727
|
+
function deriveServeEnvFromProcessEnv(env) {
|
|
20728
|
+
const out = {};
|
|
20729
|
+
const apiUrl = env.MRRLIN_API_BASE_URL?.trim();
|
|
20730
|
+
if (apiUrl) {
|
|
20731
|
+
out.MRRLIN_API_BASE_URL = apiUrl;
|
|
20732
|
+
if (env.MRRLIN_API_ALLOW_REMOTE === "1") out.MRRLIN_API_ALLOW_REMOTE = "1";
|
|
20733
|
+
} else if (env.MRRLIN_STAGING === "1") {
|
|
20734
|
+
out.MRRLIN_STAGING = "1";
|
|
20735
|
+
}
|
|
20736
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
20737
|
+
}
|
|
20727
20738
|
function resolveCodexHome(options) {
|
|
20728
20739
|
if (options.codexHome) return options.codexHome;
|
|
20729
20740
|
if (process.env.CODEX_HOME) return process.env.CODEX_HOME;
|
|
20730
20741
|
return import_node_path2.default.join(options.homeDir ?? import_node_os2.default.homedir(), ".codex");
|
|
20731
20742
|
}
|
|
20732
|
-
function mrrlinTable(binPath, distribution) {
|
|
20733
|
-
|
|
20734
|
-
|
|
20743
|
+
function mrrlinTable(binPath, distribution, serveEnv) {
|
|
20744
|
+
const base = distribution === "npm" ? { command: "mrrlin-mcp", args: ["serve"] } : { command: "node", args: [binPath, "serve"] };
|
|
20745
|
+
if (serveEnv && Object.keys(serveEnv).length > 0) {
|
|
20746
|
+
return { ...base, startup_timeout_sec: 30, env: serveEnv };
|
|
20747
|
+
}
|
|
20748
|
+
return { ...base, startup_timeout_sec: 30 };
|
|
20735
20749
|
}
|
|
20736
20750
|
function browserTable(binPath, distribution, homeDir) {
|
|
20737
20751
|
const base = distribution === "npm" ? { command: "mrrlin-mcp", args: ["browser-serve"] } : { command: "node", args: [binPath, "browser-serve"] };
|
|
@@ -20744,7 +20758,11 @@ function blockRegex(id) {
|
|
|
20744
20758
|
function managedBlocks(options, distribution) {
|
|
20745
20759
|
const homeDir = options.homeDir ?? import_node_os2.default.homedir();
|
|
20746
20760
|
return [
|
|
20747
|
-
{
|
|
20761
|
+
{
|
|
20762
|
+
id: "mrrlin",
|
|
20763
|
+
expected: mrrlinTable(options.binPath, distribution, options.serveEnv),
|
|
20764
|
+
blockRe: blockRegex("mrrlin")
|
|
20765
|
+
},
|
|
20748
20766
|
{
|
|
20749
20767
|
id: "mrrlin-browser",
|
|
20750
20768
|
expected: browserTable(options.binPath, distribution, homeDir),
|
|
@@ -36261,6 +36279,7 @@ var openApiOperationIds = {
|
|
|
36261
36279
|
listArtifactFiles: "listArtifactFiles",
|
|
36262
36280
|
getOperatorSettings: "getOperatorSettings",
|
|
36263
36281
|
updateOperatorSettings: "updateOperatorSettings",
|
|
36282
|
+
getConsensusConfig: "getConsensusConfig",
|
|
36264
36283
|
updateWikiPageCas: "updateWikiPageCas",
|
|
36265
36284
|
promoteSpecReadyCas: "promoteSpecReadyCas",
|
|
36266
36285
|
recordSpecConsensusReview: "recordSpecConsensusReview",
|
|
@@ -36301,6 +36320,8 @@ var mrrlinOperatorSettingsUpdateSchema = external_exports.object({ consensusEnab
|
|
|
36301
36320
|
message: "OperatorSettingsUpdate requires at least one field"
|
|
36302
36321
|
});
|
|
36303
36322
|
var operatorSettingsResponseSchema = external_exports.object({ data: mrrlinOperatorSettingsSchema });
|
|
36323
|
+
var mrrlinConsensusConfigSchema = external_exports.object({ consensusEnabled: external_exports.boolean() });
|
|
36324
|
+
var consensusConfigResponseSchema = external_exports.object({ data: mrrlinConsensusConfigSchema });
|
|
36304
36325
|
|
|
36305
36326
|
// ../../packages/schemas/dist/specConsensusReview.js
|
|
36306
36327
|
var mrrlinSpecConsensusReviewSchema = external_exports.object({
|
|
@@ -38127,6 +38148,10 @@ function createMrrlinClient(config2) {
|
|
|
38127
38148
|
});
|
|
38128
38149
|
return operatorSettingsResponseSchema.parse(body).data;
|
|
38129
38150
|
},
|
|
38151
|
+
async getConsensusConfig(projectSlug) {
|
|
38152
|
+
const body = await request(`${projectPath(projectSlug)}/consensus-config`);
|
|
38153
|
+
return consensusConfigResponseSchema.parse(body).data;
|
|
38154
|
+
},
|
|
38130
38155
|
async recordSpecConsensusReview(projectSlug, pageId, input) {
|
|
38131
38156
|
const body = await request(`${projectPath(projectSlug)}/wiki/${encodeURIComponent(pageId)}/consensus-review`, {
|
|
38132
38157
|
body: JSON.stringify(input),
|
|
@@ -38489,7 +38514,7 @@ Do NOT derail the current task \u2014 if the operator has an in-flight question,
|
|
|
38489
38514
|
}
|
|
38490
38515
|
|
|
38491
38516
|
// src/_generated/version.ts
|
|
38492
|
-
var PKG_VERSION = "0.3.
|
|
38517
|
+
var PKG_VERSION = "0.3.9";
|
|
38493
38518
|
|
|
38494
38519
|
// src/api-base-url.ts
|
|
38495
38520
|
var DEFAULT_API_BASE_URL = "http://127.0.0.1:8787";
|
|
@@ -50046,8 +50071,8 @@ function buildSpecGateDeps(args) {
|
|
|
50046
50071
|
rounds,
|
|
50047
50072
|
maxHeadCalls,
|
|
50048
50073
|
async consensusEnabled() {
|
|
50049
|
-
const
|
|
50050
|
-
return
|
|
50074
|
+
const config2 = await client.getConsensusConfig(projectSlug);
|
|
50075
|
+
return config2.consensusEnabled;
|
|
50051
50076
|
},
|
|
50052
50077
|
async readSpec() {
|
|
50053
50078
|
const page = await client.getWikiPage(projectSlug, specPageId);
|
|
@@ -50171,7 +50196,7 @@ ${artifact}`,
|
|
|
50171
50196
|
};
|
|
50172
50197
|
}
|
|
50173
50198
|
function buildCodeGateDeps(args) {
|
|
50174
|
-
const { client, baseRef, cwd, codexExecutable, extraHeads } = args;
|
|
50199
|
+
const { client, projectSlug, baseRef, cwd, codexExecutable, extraHeads } = args;
|
|
50175
50200
|
const rounds = Number(process.env["MRRLIN_CONSENSUS_ROUNDS"] ?? 3);
|
|
50176
50201
|
const heads = ["code-reviewer", ...extraHeads ?? []];
|
|
50177
50202
|
const maxHeadCalls = rounds * (heads.length + 1);
|
|
@@ -50183,8 +50208,8 @@ function buildCodeGateDeps(args) {
|
|
|
50183
50208
|
maxHeadCalls,
|
|
50184
50209
|
heads,
|
|
50185
50210
|
async consensusEnabled() {
|
|
50186
|
-
const
|
|
50187
|
-
return
|
|
50211
|
+
const config2 = await client.getConsensusConfig(projectSlug);
|
|
50212
|
+
return config2.consensusEnabled;
|
|
50188
50213
|
},
|
|
50189
50214
|
changedFiles() {
|
|
50190
50215
|
return changedFiles(gitArgs);
|
|
@@ -52464,6 +52489,19 @@ Usage:
|
|
|
52464
52489
|
checkouts register the local dist/bin.cjs;
|
|
52465
52490
|
published npm installs register
|
|
52466
52491
|
\`mrrlin-mcp serve\`.
|
|
52492
|
+
Bakes API-target env vars into the block as an
|
|
52493
|
+
inline env table so \`serve\` boots even when the
|
|
52494
|
+
local 127.0.0.1:8787 is not running. Setup guide:
|
|
52495
|
+
MRRLIN_STAGING=1 mrrlin-mcp install-codex
|
|
52496
|
+
is the canonical path (staging alias + remote-
|
|
52497
|
+
allow gate in one flag). For a non-staging remote,
|
|
52498
|
+
pass BOTH the URL AND the allow gate:
|
|
52499
|
+
MRRLIN_API_BASE_URL=https://... \\
|
|
52500
|
+
MRRLIN_API_ALLOW_REMOTE=1 mrrlin-mcp install-codex
|
|
52501
|
+
Without an allow gate, \`serve\` still refuses any
|
|
52502
|
+
non-loopback URL (see \`mrrlin-mcp serve\` above).
|
|
52503
|
+
URL and MRRLIN_STAGING are mutually exclusive at
|
|
52504
|
+
bake time \u2014 URL wins, mirrors serve's resolver.
|
|
52467
52505
|
--force replaces an existing conflicting block.
|
|
52468
52506
|
--force-prompts overwrites prompt files that
|
|
52469
52507
|
already exist with different content. WITHOUT it,
|
|
@@ -52616,10 +52654,12 @@ async function main() {
|
|
|
52616
52654
|
);
|
|
52617
52655
|
process.exit(2);
|
|
52618
52656
|
}
|
|
52657
|
+
const serveEnv = deriveServeEnvFromProcessEnv(process.env);
|
|
52619
52658
|
const result = await installCodex({
|
|
52620
52659
|
binPath,
|
|
52621
52660
|
force,
|
|
52622
52661
|
forcePrompts,
|
|
52662
|
+
serveEnv,
|
|
52623
52663
|
prompts: [{ name: "report-issue", content: readReportIssuePrompt() }]
|
|
52624
52664
|
});
|
|
52625
52665
|
process.stderr.write(`[mrrlin-mcp install-codex] ${result.action} ${result.configPath}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrrlin-dev/mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"mrrlin-mcp": "dist/bin.cjs"
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"esbuild": "^0.24.0",
|
|
24
24
|
"tsx": "^4.22.3",
|
|
25
25
|
"@mrrlin/client": "0.0.0",
|
|
26
|
-
"@mrrlin/
|
|
26
|
+
"@mrrlin/codex-client": "0.0.0",
|
|
27
|
+
"@mrrlin/director-e2e": "0.0.0",
|
|
27
28
|
"@mrrlin/schemas": "0.0.0",
|
|
28
29
|
"@mrrlin/tsconfig": "0.0.0",
|
|
29
|
-
"@mrrlin/
|
|
30
|
-
"@mrrlin/codex-client": "0.0.0"
|
|
30
|
+
"@mrrlin/wiki": "0.0.0"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@iarna/toml": "^2.2.5",
|