@mrrlin-dev/mcp 0.4.115 → 0.4.116
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 +61 -5
- package/package.json +1 -1
package/dist/bin.cjs
CHANGED
|
@@ -38515,6 +38515,43 @@ var mrrlinDeclaredOutcomeSchema = mrrlinDeclaredOutcomeShapeSchema.superRefine((
|
|
|
38515
38515
|
});
|
|
38516
38516
|
}
|
|
38517
38517
|
});
|
|
38518
|
+
var MRRLIN_PROJECT_CODE_HOSTS = ["github", "gitlab", "local"];
|
|
38519
|
+
var mrrlinProjectCodeHostSchema = external_exports.enum(MRRLIN_PROJECT_CODE_HOSTS);
|
|
38520
|
+
var GIT_SHA_PATTERN = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/;
|
|
38521
|
+
var SHA256_HEX_PATTERN = /^[0-9a-f]{64}$/;
|
|
38522
|
+
var MRRLIN_LOCAL_DELIVERY_REF_PATTERN = /^git\+local:\/\/([^/\s@]+)\/(mrrlin\/run-ER-[A-Za-z0-9-]+)@([0-9a-f]{40}|[0-9a-f]{64})$/;
|
|
38523
|
+
var mrrlinLocalDeliveryRefSchema = external_exports.string().regex(MRRLIN_LOCAL_DELIVERY_REF_PATTERN, "deliveryRef must be git+local://<projectSlug>/mrrlin/run-<runId>@<sha>");
|
|
38524
|
+
var mrrlinLocalBuildStepSchema = external_exports.object({
|
|
38525
|
+
command: external_exports.string().trim().min(1).max(200),
|
|
38526
|
+
exitCode: external_exports.number().int(),
|
|
38527
|
+
logDigest: external_exports.string().regex(SHA256_HEX_PATTERN)
|
|
38528
|
+
});
|
|
38529
|
+
var mrrlinLocalBuildEvidenceSchema = external_exports.object({
|
|
38530
|
+
branch: external_exports.string().regex(/^mrrlin\/run-ER-[A-Za-z0-9-]+$/),
|
|
38531
|
+
baseSha: external_exports.string().regex(GIT_SHA_PATTERN),
|
|
38532
|
+
headSha: external_exports.string().regex(GIT_SHA_PATTERN),
|
|
38533
|
+
commitCount: external_exports.number().int(),
|
|
38534
|
+
steps: external_exports.array(mrrlinLocalBuildStepSchema).max(4),
|
|
38535
|
+
noBuildStep: external_exports.boolean(),
|
|
38536
|
+
checkoutDigest: external_exports.string().regex(SHA256_HEX_PATTERN)
|
|
38537
|
+
});
|
|
38538
|
+
function checkLocalBuildEvidence(evidence, local) {
|
|
38539
|
+
if (evidence.type !== "build")
|
|
38540
|
+
return `localBuild evidence requires evidence.type "build", got "${evidence.type}"`;
|
|
38541
|
+
if (evidence.value !== local.headSha)
|
|
38542
|
+
return "evidence.value must equal localBuild.headSha";
|
|
38543
|
+
if (local.commitCount <= 0)
|
|
38544
|
+
return "localBuild.commitCount must be > 0: a run with no commits never closes a task";
|
|
38545
|
+
if (local.headSha === local.baseSha)
|
|
38546
|
+
return "localBuild.headSha equals baseSha: nothing was committed";
|
|
38547
|
+
if (local.noBuildStep !== (local.steps.length === 0)) {
|
|
38548
|
+
return "localBuild.noBuildStep must be true exactly when no build/test command was detected";
|
|
38549
|
+
}
|
|
38550
|
+
const failed = local.steps.find((step) => step.exitCode !== 0);
|
|
38551
|
+
if (failed)
|
|
38552
|
+
return `localBuild step "${failed.command}" exited ${failed.exitCode}`;
|
|
38553
|
+
return null;
|
|
38554
|
+
}
|
|
38518
38555
|
var mrrlinReceiptSchema = external_exports.object({
|
|
38519
38556
|
kind: external_exports.enum(["outcome", "attempt"]),
|
|
38520
38557
|
evidence: external_exports.object({
|
|
@@ -38522,7 +38559,17 @@ var mrrlinReceiptSchema = external_exports.object({
|
|
|
38522
38559
|
value: external_exports.string().trim().min(1)
|
|
38523
38560
|
}),
|
|
38524
38561
|
observedAt: external_exports.string().datetime(),
|
|
38525
|
-
requiresCovered: external_exports.array(artifactKindSchema)
|
|
38562
|
+
requiresCovered: external_exports.array(artifactKindSchema),
|
|
38563
|
+
// local-git-delivery: what the BRIDGE observed for a code_change delivered into a local git repo.
|
|
38564
|
+
// Optional, so every existing receipt is untouched; when present it is checked by
|
|
38565
|
+
// checkLocalBuildEvidence below, which is the single receipt rule of the design.
|
|
38566
|
+
localBuild: mrrlinLocalBuildEvidenceSchema.optional()
|
|
38567
|
+
}).superRefine((value, ctx) => {
|
|
38568
|
+
if (!value.localBuild)
|
|
38569
|
+
return;
|
|
38570
|
+
const problem = checkLocalBuildEvidence(value.evidence, value.localBuild);
|
|
38571
|
+
if (problem)
|
|
38572
|
+
ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["localBuild"], message: problem });
|
|
38526
38573
|
});
|
|
38527
38574
|
function buildReceipt(input) {
|
|
38528
38575
|
return {
|
|
@@ -38982,7 +39029,10 @@ var mrrlinProjectSummarySchema = external_exports.object({
|
|
|
38982
39029
|
// workspace-context-isolation (OQ-091): explicit client name and scope description
|
|
38983
39030
|
// for multi-tenant workspace containment. Output-optional and nullable for backwards compatibility.
|
|
38984
39031
|
clientName: external_exports.string().trim().max(80).nullable().optional(),
|
|
38985
|
-
scopeDescription: external_exports.string().trim().max(240).nullable().optional()
|
|
39032
|
+
scopeDescription: external_exports.string().trim().max(240).nullable().optional(),
|
|
39033
|
+
// local-git-delivery: where this project's code lives. Null means "not asked yet" -- see
|
|
39034
|
+
// mrrlinProjectCodeHostSchema. Output-optional so existing fixtures need no churn.
|
|
39035
|
+
codeHost: mrrlinProjectCodeHostSchema.nullable().optional()
|
|
38986
39036
|
});
|
|
38987
39037
|
var mrrlinProjectOperatorInputSchema = external_exports.string().regex(/^@[!-~]+$/, "operator must be '@' followed by printable ASCII with no whitespace");
|
|
38988
39038
|
var mrrlinProjectUpsertSchema = mrrlinProjectSummarySchema.omit({
|
|
@@ -38995,7 +39045,8 @@ var mrrlinProjectRenameSchema = external_exports.object({
|
|
|
38995
39045
|
displayName: external_exports.string().trim().min(1).max(120).optional(),
|
|
38996
39046
|
intentJudgeEnabled: external_exports.boolean().optional(),
|
|
38997
39047
|
clientName: external_exports.string().trim().max(80).nullable().optional(),
|
|
38998
|
-
scopeDescription: external_exports.string().trim().max(240).nullable().optional()
|
|
39048
|
+
scopeDescription: external_exports.string().trim().max(240).nullable().optional(),
|
|
39049
|
+
codeHost: mrrlinProjectCodeHostSchema.nullable().optional()
|
|
38999
39050
|
});
|
|
39000
39051
|
var ONBOARDING_KICKOFF_TRANSITIONS = [
|
|
39001
39052
|
{ from: null, to: "pending" },
|
|
@@ -39032,7 +39083,8 @@ var mrrlinProjectSnapshotSchema = external_exports.object({
|
|
|
39032
39083
|
emoji: mrrlinProjectEmojiSchema,
|
|
39033
39084
|
slug: mrrlinProjectSlugSchema,
|
|
39034
39085
|
clientName: external_exports.string().trim().max(80).nullable().optional(),
|
|
39035
|
-
scopeDescription: external_exports.string().trim().max(240).nullable().optional()
|
|
39086
|
+
scopeDescription: external_exports.string().trim().max(240).nullable().optional(),
|
|
39087
|
+
codeHost: mrrlinProjectCodeHostSchema.nullable().optional()
|
|
39036
39088
|
}),
|
|
39037
39089
|
taskDependencies: external_exports.array(mrrlinTaskDependencySchema).default([]),
|
|
39038
39090
|
taskEvents: external_exports.array(mrrlinTaskEventSchema).default([]),
|
|
@@ -39552,6 +39604,9 @@ var mrrlinExecutionRunSchema = external_exports.object({
|
|
|
39552
39604
|
projectSlug: mrrlinProjectSlugSchema,
|
|
39553
39605
|
provider: external_exports.string().min(1),
|
|
39554
39606
|
pullRequestUrl: external_exports.string().min(1).nullable(),
|
|
39607
|
+
// local-git-delivery: set instead of pullRequestUrl when a run delivered into a local git repo.
|
|
39608
|
+
// Optional + nullable: absent on every pre-existing run and on every GitHub run.
|
|
39609
|
+
deliveryRef: mrrlinLocalDeliveryRefSchema.nullable().optional(),
|
|
39555
39610
|
startedAt: external_exports.string().datetime().nullable(),
|
|
39556
39611
|
status: mrrlinExecutionRunStatusSchema,
|
|
39557
39612
|
taskId: mrrlinTaskIdSchema,
|
|
@@ -39646,6 +39701,7 @@ var mrrlinExecutionRunUpdateSchema = external_exports.object({
|
|
|
39646
39701
|
prodPublishRef: external_exports.string().min(1).nullable().optional(),
|
|
39647
39702
|
prodWorkflowId: external_exports.number().int().positive().nullable().optional(),
|
|
39648
39703
|
pullRequestUrl: external_exports.string().min(1).nullable().optional(),
|
|
39704
|
+
deliveryRef: mrrlinLocalDeliveryRefSchema.nullable().optional(),
|
|
39649
39705
|
status: mrrlinExecutionRunStatusSchema.optional(),
|
|
39650
39706
|
worktreeId: external_exports.string().min(1).nullable().optional(),
|
|
39651
39707
|
// Slice 6 (cost telemetry) + Slice 7 (effort). All nullable and optional: per D6, NULL means
|
|
@@ -61764,7 +61820,7 @@ Do NOT derail the current task - if the operator has an in-flight question, answ
|
|
|
61764
61820
|
}
|
|
61765
61821
|
|
|
61766
61822
|
// src/_generated/version.ts
|
|
61767
|
-
var PKG_VERSION = "0.4.
|
|
61823
|
+
var PKG_VERSION = "0.4.116";
|
|
61768
61824
|
|
|
61769
61825
|
// src/receipt-signing.ts
|
|
61770
61826
|
var import_node_crypto13 = __toESM(require("node:crypto"), 1);
|