@mrrlin-dev/mcp 0.3.50 → 0.3.52

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.
Files changed (2) hide show
  1. package/dist/bin.cjs +39 -21
  2. package/package.json +4 -4
package/dist/bin.cjs CHANGED
@@ -39259,7 +39259,7 @@ function startCodexProbe(deps = {}) {
39259
39259
  }
39260
39260
 
39261
39261
  // src/_generated/version.ts
39262
- var PKG_VERSION = "0.3.50";
39262
+ var PKG_VERSION = "0.3.52";
39263
39263
 
39264
39264
  // src/api-base-url-migrate.ts
39265
39265
  var import_node_fs2 = __toESM(require("node:fs"), 1);
@@ -40020,9 +40020,6 @@ function normalizeDomain(value) {
40020
40020
  function resolveHeads(domain2) {
40021
40021
  return [...HEADS_BY_DOMAIN[normalizeDomain(domain2)]];
40022
40022
  }
40023
- function allReviewHeads() {
40024
- return [...new Set(Object.values(HEADS_BY_DOMAIN).flat())];
40025
- }
40026
40023
  var PERSONAS_BY_DOMAIN = {
40027
40024
  seo: "seo-writer",
40028
40025
  content: "content-author",
@@ -47989,6 +47986,27 @@ function buildThreadStartParams(msg, config2, desiredModel) {
47989
47986
  "transcript. Just call the tools and reply with the outcome \u2014 start your reply with the result.",
47990
47987
  "When creating or updating tasks, always provide `autonomyLevel` and `autonomyReason`.",
47991
47988
  "",
47989
+ "Turn lifecycle \u2014 what you can and cannot do between turns:",
47990
+ "- Your turn ends the moment you stop producing output. You CANNOT start a new turn yourself:",
47991
+ " no timer and no scheduler wakes you up. Only a new operator message starts the next turn.",
47992
+ '- Therefore NEVER end a reply with a promise to keep working \u2014 no "continuing to the next one',
47993
+ ` automatically", "I'll proceed now", "working on it", in ANY language. If you say it and then`,
47994
+ " stop, the work silently never happens and the operator waits forever for a reply that will",
47995
+ " never come.",
47996
+ "- When the operator hands you a batch (several links, tasks, or pages), process EVERY item in",
47997
+ " the SAME turn: keep calling tools item by item, then report all results together at the end.",
47998
+ "- A turn is bounded (~30 minutes of wall clock, and a finite reply size), so never open-endedly",
47999
+ " commit to a huge batch. If it holds more than ~8 items, or individual items need heavy",
48000
+ " fetching or analysis, split it UP FRONT: say how you are splitting it, do the first slice,",
48001
+ " then ask to continue. Splitting deliberately beats being cut off mid-batch and losing the work.",
48002
+ "- Whenever you stop short of the full batch, stop at a clean boundary and END with an explicit",
48003
+ ' request to continue, naming exactly where you stopped (e.g. "done 2 of 7 \u2014 say `continue`',
48004
+ ` and I'll take 3-7"). An explicit ask is correct; a promise to self-continue is a bug.`,
48005
+ "- Exception: when a tool's OWN instructions say its result will arrive in the inbox (e.g. spec",
48006
+ " consensus returning `queued`), ending the turn IS correct \u2014 a real asynchronous mechanism",
48007
+ " delivers that result later. This exception covers ONLY inbox-delivered results; it is never",
48008
+ " license to end a turn while work you must do yourself is still outstanding.",
48009
+ "",
47992
48010
  "Task description quality contract \u2014 every task you create or update via create_task or update_task:",
47993
48011
  "- Title: short, actionable, human-readable. Describe what needs to happen, not internal jargon.",
47994
48012
  ' Good: "Audit crawled-not-indexed pages and fix 404 errors"',
@@ -54190,6 +54208,22 @@ function buildGateQuestionOptions(question, category) {
54190
54208
  }
54191
54209
  ];
54192
54210
  }
54211
+ var defaultNativeSpecGateBuilders = { buildSpecGateDeps, runSpecGate };
54212
+ async function runNativeSpecGate(ctx, input, builders = defaultNativeSpecGateBuilders) {
54213
+ const deps = builders.buildSpecGateDeps({
54214
+ client: ctx.client,
54215
+ projectSlug: input.projectSlug,
54216
+ specPageId: input.pageId,
54217
+ cwd: ctx.cwd,
54218
+ codexExecutable: ctx.codexExecutable,
54219
+ extraHeadCount: input.extraHeads?.length ?? 0
54220
+ });
54221
+ return builders.runSpecGate(
54222
+ { projectSlug: input.projectSlug, specPageId: input.pageId },
54223
+ deps,
54224
+ input.extraHeads && input.extraHeads.length > 0 ? { extraHeads: input.extraHeads } : void 0
54225
+ );
54226
+ }
54193
54227
  async function cachedResult(client, input) {
54194
54228
  const page = await client.getWikiPage(input.projectSlug, input.pageId);
54195
54229
  if (!page) return null;
@@ -54215,23 +54249,7 @@ async function cachedResult(client, input) {
54215
54249
  return null;
54216
54250
  }
54217
54251
  async function run(ctx, input) {
54218
- const deps = buildSpecGateDeps({
54219
- client: ctx.client,
54220
- projectSlug: input.projectSlug,
54221
- specPageId: input.pageId,
54222
- cwd: ctx.cwd,
54223
- codexExecutable: ctx.codexExecutable,
54224
- extraHeadCount: input.extraHeads?.length ?? 0
54225
- });
54226
- const activeRunHead = await resolveActiveRunHead({
54227
- heads: [...allReviewHeads(), ...input.extraHeads ?? []]
54228
- });
54229
- if (activeRunHead) deps.runHead = activeRunHead;
54230
- const result = await runSpecGate(
54231
- { projectSlug: input.projectSlug, specPageId: input.pageId },
54232
- deps,
54233
- input.extraHeads && input.extraHeads.length > 0 ? { extraHeads: input.extraHeads } : void 0
54234
- );
54252
+ const result = await runNativeSpecGate(ctx, input);
54235
54253
  if (process.env[SHADOW_ENV_FLAG]) {
54236
54254
  try {
54237
54255
  const specPage = await ctx.client.getWikiPage(input.projectSlug, input.pageId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrrlin-dev/mcp",
3
- "version": "0.3.50",
3
+ "version": "0.3.52",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mrrlin-mcp": "dist/bin.cjs"
@@ -22,11 +22,11 @@
22
22
  "esbuild": "^0.24.0",
23
23
  "tsx": "^4.22.3",
24
24
  "@mrrlin/director-e2e": "0.0.0",
25
- "@mrrlin/wiki": "0.0.0",
26
25
  "@mrrlin/schemas": "0.0.0",
27
- "@mrrlin/tsconfig": "0.0.0",
26
+ "@mrrlin/wiki": "0.0.0",
28
27
  "@mrrlin/client": "0.0.0",
29
- "@mrrlin/codex-client": "0.0.0"
28
+ "@mrrlin/codex-client": "0.0.0",
29
+ "@mrrlin/tsconfig": "0.0.0"
30
30
  },
31
31
  "dependencies": {
32
32
  "@iarna/toml": "^2.2.5",