@mutmutco/codex-plugin 4.6.20 → 4.6.22
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/.codex-plugin/plugin.json +1 -1
- package/cli/dist/main.cjs +15 -9
- package/cli/package.json +1 -1
- package/package.json +1 -1
package/cli/dist/main.cjs
CHANGED
|
@@ -28089,10 +28089,10 @@ var rollout_plan_default = {
|
|
|
28089
28089
|
note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
|
|
28090
28090
|
},
|
|
28091
28091
|
baseline: {
|
|
28092
|
-
version: "4.6.
|
|
28093
|
-
tag: "v4.6.
|
|
28094
|
-
commit: "
|
|
28095
|
-
npm: "@mutmutco/cli@4.6.
|
|
28092
|
+
version: "4.6.22",
|
|
28093
|
+
tag: "v4.6.22",
|
|
28094
|
+
commit: "bc3629b50994",
|
|
28095
|
+
npm: "@mutmutco/cli@4.6.22"
|
|
28096
28096
|
},
|
|
28097
28097
|
exitCriterion: "fleet-n-of-n",
|
|
28098
28098
|
hubOnlyShortcut: "forbidden",
|
|
@@ -28109,14 +28109,14 @@ var rollout_plan_default = {
|
|
|
28109
28109
|
repo: "mutmutco/mmi-hub",
|
|
28110
28110
|
role: "canary",
|
|
28111
28111
|
schedule: "train",
|
|
28112
|
-
v3Target: "v4.6.
|
|
28112
|
+
v3Target: "v4.6.22"
|
|
28113
28113
|
}
|
|
28114
28114
|
],
|
|
28115
28115
|
rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
|
|
28116
28116
|
rollback: {
|
|
28117
28117
|
independent: true,
|
|
28118
|
-
mechanism: "npm dist-tag latest -> 4.6.
|
|
28119
|
-
v3Target: "v4.6.
|
|
28118
|
+
mechanism: "npm dist-tag latest -> 4.6.22 and redeploy the Hub Lambda from tag v4.6.22 (bc3629b50994); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
28119
|
+
v3Target: "v4.6.22 (@mutmutco/cli@4.6.22, tag commit bc3629b50994 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
28120
28120
|
}
|
|
28121
28121
|
},
|
|
28122
28122
|
{
|
|
@@ -56903,9 +56903,15 @@ function orgScopedHint(path2) {
|
|
|
56903
56903
|
if (!match) return "";
|
|
56904
56904
|
const org = match[1];
|
|
56905
56905
|
const runners = /^orgs\/[^/?#]+\/actions\/runners(?:\/|$)/.test(path2.split("?")[0]);
|
|
56906
|
-
const surface = runners ? `For which lane is busy in a repo, use the App-token reads \`mmi-cli devops read run list --repo <owner>/<repo> --status in_progress --json databaseId,workflowName\` followed by \`mmi-cli devops
|
|
56906
|
+
const surface = runners ? `For which lane is busy in a repo, use the App-token reads \`mmi-cli devops read run list --repo <owner>/<repo> --status in_progress --json databaseId,workflowName\` followed by \`MMI_ACTOR=app mmi-cli devops api get "repos/<owner>/<repo>/actions/runs/<id>/jobs?per_page=100"\` (runner_name/status per job); fleet-wide runner online/offline state has no App-token read and a human token holder answers it with \`gh api orgs/${org}/actions/runners\` (docs/Guides/gh-runner-runbook.md).` : "It needs a human token holder with an org-scoped token, or a dedicated mmi-cli verb when one exists for this resource.";
|
|
56907
56907
|
return ` This route is ORG-SCOPED (\`orgs/${org}/...\`) and is deliberately outside the allowlist \u2014 no App-token read exists for org-level resources, so retrying path variants cannot work and no \`repos/{owner}/{repo}/...\` respelling of it will be accepted. ${surface} A refusal writes nothing to stdout: check the exit code and never merge stderr into the JSON pipe (2>&1).`;
|
|
56908
56908
|
}
|
|
56909
|
+
function repoRunnersReadHint(path2) {
|
|
56910
|
+
const match = new RegExp(`^repos/(${NAME})/(${NAME})/actions/runners(?:/\\d+)?$`).exec(path2.split("?")[0]);
|
|
56911
|
+
if (!match) return "";
|
|
56912
|
+
const slug = `${match[1]}/${match[2]}`;
|
|
56913
|
+
return ` This route is a REPO-SCOPED runner read (\`repos/${slug}/actions/runners...\`) and is deliberately outside the allowlist \u2014 retrying path variants cannot work, and no new grant or allowlist growth is implied. The App-token reads prove only observed activity, never fleet inventory or idle capacity: \`MMI_ACTOR=app mmi-cli devops read run list --repo ${slug} --status in_progress --json databaseId,workflowName\` followed by \`MMI_ACTOR=app mmi-cli devops api get "repos/${slug}/actions/runs/<id>/jobs?per_page=100"\` (runner_name/status per job). Fleet inventory is a human admin read: \`gh api orgs/<org>/actions/runners\` (docs/Guides/gh-runner-runbook.md) \u2014 whether this repo also carries repo-level runners is unproved either way. A refusal writes nothing to stdout: check the exit code and never merge stderr into the JSON pipe (2>&1).`;
|
|
56914
|
+
}
|
|
56909
56915
|
function tagsReadHint(path2) {
|
|
56910
56916
|
const match = new RegExp(`^repos/(${NAME})/(${NAME})/(?:tags|git/(?:refs|matching-refs|tags|commits))(?:[/?#]|$)`).exec(path2);
|
|
56911
56917
|
if (!match) return "";
|
|
@@ -56949,7 +56955,7 @@ function parseApiGetPath(rawPath) {
|
|
|
56949
56955
|
const path2 = normalizeApiGetPath(rawPath);
|
|
56950
56956
|
const refuse = () => {
|
|
56951
56957
|
const hint = /^[A-Za-z]:[/\\]/.test(rawPath.trim()) ? " Git Bash/MSYS may have rewritten a leading-slash argument; retry with MSYS_NO_PATHCONV=1 and the slash-free repos/... path. The endpoint must still be allowlisted." : "";
|
|
56952
|
-
const routeHints = `${typedReadHint(path2)}${runsReadHint(path2)}${orgScopedHint(path2)}${tagsReadHint(path2)}${branchRulesReadHint(path2)}${commitsReadHint(path2)}${checkRunsReadHint(path2)}${workflowRunsReadHint(path2)}${hint}`;
|
|
56958
|
+
const routeHints = `${typedReadHint(path2)}${runsReadHint(path2)}${orgScopedHint(path2)}${repoRunnersReadHint(path2)}${tagsReadHint(path2)}${branchRulesReadHint(path2)}${commitsReadHint(path2)}${checkRunsReadHint(path2)}${workflowRunsReadHint(path2)}${hint}`;
|
|
56953
56959
|
return new Error(`api get: refusing '${rawPath}' \u2014${routeHints}${API_GET_RECOVERY} Only these GET reads are allowed (#7219): ${API_GET_ALLOWED_SHAPES}.`);
|
|
56954
56960
|
};
|
|
56955
56961
|
if (/[%#\\]/.test(path2) || path2.split("?")[0].split("/").some((seg) => seg === "." || seg === ".." || seg === "")) throw refuse();
|
package/cli/package.json
CHANGED