@mrrlin-dev/mcp 0.4.121 → 0.4.123
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 +47 -5
- package/package.json +1 -1
package/dist/bin.cjs
CHANGED
|
@@ -39070,7 +39070,25 @@ var mrrlinProjectRenameSchema = external_exports.object({
|
|
|
39070
39070
|
intentJudgeEnabled: external_exports.boolean().optional(),
|
|
39071
39071
|
clientName: external_exports.string().trim().max(80).nullable().optional(),
|
|
39072
39072
|
scopeDescription: external_exports.string().trim().max(240).nullable().optional(),
|
|
39073
|
-
codeHost: mrrlinProjectCodeHostSchema.nullable().optional()
|
|
39073
|
+
codeHost: mrrlinProjectCodeHostSchema.nullable().optional(),
|
|
39074
|
+
// local-git-delivery: compare-and-set for codeHost. When true, codeHost is written only while the
|
|
39075
|
+
// stored value is still null, in one conditional UPDATE, so a background writer (the bridge applying
|
|
39076
|
+
// an answered code-host question) can never overwrite a host the operator chose meanwhile.
|
|
39077
|
+
codeHostOnlyIfUnset: external_exports.boolean().optional()
|
|
39078
|
+
}).superRefine((value, ctx) => {
|
|
39079
|
+
if (!value.codeHostOnlyIfUnset)
|
|
39080
|
+
return;
|
|
39081
|
+
const others = ["displayName", "intentJudgeEnabled", "clientName", "scopeDescription"].filter((key) => value[key] !== void 0);
|
|
39082
|
+
if (others.length > 0) {
|
|
39083
|
+
ctx.addIssue({
|
|
39084
|
+
code: external_exports.ZodIssueCode.custom,
|
|
39085
|
+
path: ["codeHostOnlyIfUnset"],
|
|
39086
|
+
message: `codeHostOnlyIfUnset updates codeHost alone; also sent: ${others.join(", ")}`
|
|
39087
|
+
});
|
|
39088
|
+
}
|
|
39089
|
+
if (value.codeHost === void 0 || value.codeHost === null) {
|
|
39090
|
+
ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["codeHost"], message: "codeHostOnlyIfUnset requires a non-null codeHost" });
|
|
39091
|
+
}
|
|
39074
39092
|
});
|
|
39075
39093
|
var ONBOARDING_KICKOFF_TRANSITIONS = [
|
|
39076
39094
|
{ from: null, to: "pending" },
|
|
@@ -62102,7 +62120,7 @@ Do NOT derail the current task - if the operator has an in-flight question, answ
|
|
|
62102
62120
|
}
|
|
62103
62121
|
|
|
62104
62122
|
// src/_generated/version.ts
|
|
62105
|
-
var PKG_VERSION = "0.4.
|
|
62123
|
+
var PKG_VERSION = "0.4.123";
|
|
62106
62124
|
|
|
62107
62125
|
// src/receipt-signing.ts
|
|
62108
62126
|
var import_node_crypto13 = __toESM(require("node:crypto"), 1);
|
|
@@ -66503,7 +66521,7 @@ async function assertRunCompletionReady(deps, projectSlug, taskId, runId, allowe
|
|
|
66503
66521
|
if (!allowedStatuses.has(task.status)) {
|
|
66504
66522
|
return {
|
|
66505
66523
|
ok: false,
|
|
66506
|
-
reason: `
|
|
66524
|
+
reason: `Agent turn completed but task ${task.id} remained in status ${task.status}.`,
|
|
66507
66525
|
task
|
|
66508
66526
|
};
|
|
66509
66527
|
}
|
|
@@ -66520,7 +66538,7 @@ async function assertRunCompletionReady(deps, projectSlug, taskId, runId, allowe
|
|
|
66520
66538
|
if (!hasEvidence) {
|
|
66521
66539
|
return {
|
|
66522
66540
|
ok: false,
|
|
66523
|
-
reason: `
|
|
66541
|
+
reason: `Agent turn completed and task ${task.id} closed, but task lineage for run ${runId} has no durable completion evidence artifact.`,
|
|
66524
66542
|
task
|
|
66525
66543
|
};
|
|
66526
66544
|
}
|
|
@@ -68064,7 +68082,7 @@ async function askCodeHostOnce(deps, projectSlug, taskId) {
|
|
|
68064
68082
|
try {
|
|
68065
68083
|
const snapshot = await deps.client.getProjectSnapshot(projectSlug);
|
|
68066
68084
|
if (snapshot.project.codeHost != null) return;
|
|
68067
|
-
await deps.client.createInboxItem(projectSlug, {
|
|
68085
|
+
const item = await deps.client.createInboxItem(projectSlug, {
|
|
68068
68086
|
id: codeHostQuestionId(projectSlug),
|
|
68069
68087
|
kind: "question",
|
|
68070
68088
|
taskId,
|
|
@@ -68075,6 +68093,30 @@ async function askCodeHostOnce(deps, projectSlug, taskId) {
|
|
|
68075
68093
|
{ label: "Also put it on GitLab", answer: "gitlab", description: "You will be asked to connect GitLab." }
|
|
68076
68094
|
]
|
|
68077
68095
|
});
|
|
68096
|
+
if (item?.answer === "github" || item?.answer === "gitlab") {
|
|
68097
|
+
const host = item.answer === "github" ? "GitHub" : "GitLab";
|
|
68098
|
+
await deps.client.createInboxItem(projectSlug, {
|
|
68099
|
+
id: `${codeHostQuestionId(projectSlug)}-connect`,
|
|
68100
|
+
kind: "info",
|
|
68101
|
+
// Project-scoped on purpose: closing a task acknowledges that task's pending info items, which
|
|
68102
|
+
// would hide this note before the operator saw it (and its stable id prevents re-filing).
|
|
68103
|
+
body: `You asked for this project's code to also go to ${host}. Until ${host} is connected, code keeps being saved only on this computer. Connect it in Settings \u2192 Integrations, or ask the Director to help you connect ${host}.`
|
|
68104
|
+
});
|
|
68105
|
+
return;
|
|
68106
|
+
}
|
|
68107
|
+
if (item?.answer === "local") {
|
|
68108
|
+
try {
|
|
68109
|
+
await deps.client.renameProject(projectSlug, { codeHost: "local", codeHostOnlyIfUnset: true });
|
|
68110
|
+
} catch (error51) {
|
|
68111
|
+
console.warn(
|
|
68112
|
+
JSON.stringify({
|
|
68113
|
+
event: "code_host_answer_apply_failed",
|
|
68114
|
+
projectSlug,
|
|
68115
|
+
error: error51 instanceof Error ? error51.message : String(error51)
|
|
68116
|
+
})
|
|
68117
|
+
);
|
|
68118
|
+
}
|
|
68119
|
+
}
|
|
68078
68120
|
} catch {
|
|
68079
68121
|
}
|
|
68080
68122
|
}
|