@euqns/nudge-mcp 1.1.0 → 1.3.0

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/runner.js CHANGED
@@ -4,6 +4,10 @@
4
4
  // Nudge board, waits for jobs queued from that board's cards, and works each one
5
5
  // inside a local checkout of the board's repository — using either Codex or
6
6
  // Claude Code, whichever the job asks for and this machine has installed.
7
+ // With `--concurrency N` it works up to N queued jobs at once, each in its own
8
+ // agent conversation — queueing several cards behaves like opening several
9
+ // chats. They share the checkout, so the same mixed-working-copy caveat as
10
+ // `--instance` applies while more than one coding turn is writing.
7
11
  //
8
12
  // A fresh task runs as a three-stage pipeline: a strong model plans and
9
13
  // analyzes read-only, a faster model implements when code is required, then
@@ -42,6 +46,18 @@ import { NUDGE_MCP_VERSION } from "./version.js";
42
46
  // finish/failure; stage transitions use their own tiny status mutation. This
43
47
  // keeps verbose model output from repeatedly invalidating the board query.
44
48
  const MAX_BUFFERED_LOG_CHUNKS = 192;
49
+ // Keep in sync with MAX_CONCURRENT_JOBS in convex/runners.ts — the server
50
+ // clamps to this ceiling regardless of what the flag asks for.
51
+ const MAX_CONCURRENCY = 8;
52
+ export function parseConcurrency(raw) {
53
+ if (raw === undefined || raw === null || raw === "")
54
+ return 1;
55
+ const n = typeof raw === "number" ? raw : Number(raw);
56
+ if (!Number.isFinite(n) || Math.floor(n) < 1) {
57
+ throw new Error(`--concurrency must be a whole number between 1 and ${MAX_CONCURRENCY}, got "${raw}"`);
58
+ }
59
+ return Math.min(MAX_CONCURRENCY, Math.floor(n));
60
+ }
45
61
  // Convex function references. Built by path rather than importing the generated
46
62
  // api, matching how mcp/src/index.ts talks to the deployment — this package is
47
63
  // published standalone and must not depend on the app's generated types.
@@ -95,6 +111,23 @@ export function codingPrompt(task, plan) {
95
111
  task,
96
112
  ].join("\n");
97
113
  }
114
+ export function noCodeWorkPrompt(task, plan) {
115
+ return [
116
+ "Complete the task using the tools available in this work turn.",
117
+ "The analysis found that no repository changes are required. Do not modify repository files.",
118
+ "This is the execution turn, not another planning turn: use the Nudge MCP tools to perform",
119
+ "every requested update (including task description, comments, or subtask completion),",
120
+ "then report exactly what changed. Use ask_human only for a decision that cannot be",
121
+ "resolved from the task.",
122
+ "Call request_review once if the task is complete and review is not automatic.",
123
+ "",
124
+ "--- PLAN AND ANALYSIS ---",
125
+ plan,
126
+ "",
127
+ "--- TASK ---",
128
+ task,
129
+ ].join("\n");
130
+ }
98
131
  function reviewPrompt(task, plan, implementation) {
99
132
  return [
100
133
  "Perform a final code review of the work currently in this checkout.",
@@ -163,6 +196,11 @@ function parseArgs(argv) {
163
196
  out.instance = instance;
164
197
  continue;
165
198
  }
199
+ const concurrency = takeValue("--concurrency");
200
+ if (concurrency !== null) {
201
+ out.concurrency = parseConcurrency(concurrency);
202
+ continue;
203
+ }
166
204
  if (arg === "--save") {
167
205
  out.save = true;
168
206
  continue;
@@ -206,6 +244,7 @@ async function resolveOptions(argv) {
206
244
  effort: flags.effort ?? null,
207
245
  save: flags.save ?? false,
208
246
  instance: flags.instance?.trim() || null,
247
+ concurrency: flags.concurrency ?? parseConcurrency(saved?.concurrency),
209
248
  };
210
249
  if (options.save) {
211
250
  const config = {
@@ -214,6 +253,7 @@ async function resolveOptions(argv) {
214
253
  machineId,
215
254
  cwd: options.cwd,
216
255
  name: options.name,
256
+ ...(options.concurrency > 1 ? { concurrency: options.concurrency } : {}),
217
257
  };
218
258
  await writeRunnerConfig(config);
219
259
  }
@@ -290,28 +330,26 @@ export async function runNudgeRunner(argv) {
290
330
  " Claude Code — https://claude.com/code, then `claude` once to sign in",
291
331
  ].join("\n"));
292
332
  }
293
- // The agent reaches the board through the Nudge MCP server, which reads the
294
- // user-scoped credentials. Two ways that can be broken, neither a hard stop
295
- // (the agent can still edit files and ask questions): the credentials are
296
- // missing, or the sneaky one they point at a DIFFERENT deployment than
297
- // this runner's board, in which case every card tool call fails because the
298
- // job's card ids don't resolve there. Detect both here, and repeat the
299
- // warning in each job's own log so the failure is explained where people
300
- // actually look.
333
+ // Active-task reads, updates, comments, and subtask completion authenticate
334
+ // with the job's own runner token. Broader board tools still need the user's
335
+ // MCP credentials, which can be missing or point at another deployment.
336
+ // Detect both here and explain the resulting narrower tool surface in each
337
+ // job's log.
301
338
  const userCreds = await readCredentials();
302
339
  const normalizeUrl = (url) => url.trim().replace(/\/+$/, "").toLowerCase();
303
340
  let credentialsIssue = null;
304
341
  if (!userCreds) {
305
342
  credentialsIssue =
306
- "No Nudge MCP credentials on this machine the agent can edit files and ask " +
307
- "questions, but not read or update cards. Run `nudge-mcp setup` to fix.";
343
+ "No user-scoped Nudge MCP credentials on this machine. The active task and its " +
344
+ "subtasks can still be read, updated, commented on, and completed, but broader " +
345
+ "board tools are unavailable. Run `nudge-mcp setup` to enable them.";
308
346
  }
309
347
  else if (normalizeUrl(userCreds.convexUrl) !== normalizeUrl(options.convexUrl)) {
310
348
  credentialsIssue =
311
349
  `This machine's Nudge credentials point at ${userCreds.convexUrl}, but this runner ` +
312
- `is registered against ${options.convexUrl}. Card tools (comments, card updates) ` +
313
- "will fail on every job ask_human still works. Run `nudge-mcp setup` against " +
314
- "this deployment to fix.";
350
+ `is registered against ${options.convexUrl}. Active-task management still works ` +
351
+ "through the runner token, but broader board tools are unavailable. Run `nudge-mcp " +
352
+ "setup` against this deployment to enable them.";
315
353
  }
316
354
  if (credentialsIssue)
317
355
  console.warn(`[runner] ⚠ ${credentialsIssue}`);
@@ -350,6 +388,12 @@ export async function runNudgeRunner(argv) {
350
388
  " parallel jobs will edit the same working copy at once — uncommitted\n" +
351
389
  " changes can mix across tasks. A separate clone per runner is safer.");
352
390
  }
391
+ if (options.concurrency > 1) {
392
+ console.warn(`[runner] ⚠ concurrency ${options.concurrency}: up to ${options.concurrency} jobs will run in this checkout\n` +
393
+ " at once. Read-only planning/review turns coexist fine, but two coding\n" +
394
+ " turns editing at the same time can mix uncommitted changes across\n" +
395
+ " tasks. Prefer tasks that touch different areas, or one clone each.");
396
+ }
353
397
  const registration = (await client.mutation(fns.register, {
354
398
  token: options.token,
355
399
  machineId: registrationId,
@@ -361,6 +405,7 @@ export async function runNudgeRunner(argv) {
361
405
  cwd: options.cwd,
362
406
  labels: options.labels,
363
407
  engines: availableEngines,
408
+ maxConcurrentJobs: options.concurrency,
364
409
  }));
365
410
  const { runnerId, board } = registration;
366
411
  console.log("");
@@ -373,15 +418,15 @@ export async function runNudgeRunner(argv) {
373
418
  console.log(` ${d.engine.displayName.padEnd(11)}${d.available ? "ready" : "unavailable"} — ${d.detail}`);
374
419
  }
375
420
  console.log(" Pipeline: read-only plan → implementation if needed → read-only review");
421
+ if (options.concurrency > 1) {
422
+ console.log(` Parallel: up to ${options.concurrency} jobs at once (--concurrency)`);
423
+ }
376
424
  console.log(" Questions: agents can ask on the card and wait for your reply");
377
425
  console.log("");
378
426
  console.log("Waiting for jobs. Keep this terminal open.");
379
427
  console.log("");
380
- // ---- job execution ------------------------------------------------------
381
- // `abort` is replaced per engine turn (a steer aborts one turn and starts
382
- // the next); `steer`/`cancelled` record WHY the current turn was aborted so
383
- // the catch block can tell a resume from a stop.
384
- let active = null;
428
+ const active = new Map();
429
+ const atCapacity = () => active.size >= options.concurrency;
385
430
  let claiming = false;
386
431
  let stopped = false;
387
432
  // No heartbeat. Cancellation and steers arrive over the nextJob
@@ -393,7 +438,7 @@ export async function runNudgeRunner(argv) {
393
438
  steer: job.steer,
394
439
  cancelled: false,
395
440
  };
396
- active = state;
441
+ active.set(job.id, state);
397
442
  const logs = new LogBatcher(client, options.token, runnerId, job.id);
398
443
  if (credentialsIssue)
399
444
  logs.push("event", `⚠ ${credentialsIssue}`);
@@ -407,7 +452,7 @@ export async function runNudgeRunner(argv) {
407
452
  await report(job.id, "failed", {
408
453
  error: `Runner has no usable ${job.engine} engine`,
409
454
  });
410
- active = null;
455
+ active.delete(job.id);
411
456
  return;
412
457
  }
413
458
  const runOptions = {
@@ -501,38 +546,42 @@ export async function runNudgeRunner(argv) {
501
546
  logs.push("event", needsCode ? "Plan complete — code changes required." : "Plan complete — no code changes required.");
502
547
  await reportPhase("planning", { needsCode });
503
548
  }
504
- if (!needsCode) {
505
- outputProfile = profiles.analysis;
506
- summary = plan;
507
- }
508
- else {
509
- outputProfile = profiles.coding;
510
- await reportPhase("coding", { needsCode: true });
511
- logs.push("event", `Implementing with ${profiles.coding.model} · ${profiles.coding.effort}`);
512
- const coded = await engine.execute({
513
- ...runOptions,
514
- prompt: job.resuming ? runOptions.prompt : codingPrompt(runOptions.prompt, plan),
515
- model: profiles.coding.model,
516
- effort: profiles.coding.effort,
517
- readOnly: false,
518
- threadId: job.resuming ? job.threadId : null,
519
- signal: state.abort.signal,
520
- onThreadId: (id) => {
521
- threadId = id;
522
- },
523
- env: board.repo
524
- ? {
525
- ...runOptions.env,
526
- NUDGE_RUNNER_REPO: board.repo.name,
527
- NUDGE_RUNNER_CWD: options.cwd,
528
- ...(board.repo.defaultBranch
529
- ? { NUDGE_RUNNER_DEFAULT_BRANCH: board.repo.defaultBranch }
530
- : {}),
531
- }
532
- : runOptions.env,
533
- });
534
- addResult(coded);
535
- prSearchText = coded.summary;
549
+ outputProfile = profiles.coding;
550
+ await reportPhase("coding", { needsCode });
551
+ logs.push("event", needsCode
552
+ ? `Implementing with ${profiles.coding.model} · ${profiles.coding.effort}`
553
+ : `Applying task updates with ${profiles.coding.model} · ${profiles.coding.effort} (checkout read-only)`);
554
+ const coded = await engine.execute({
555
+ ...runOptions,
556
+ prompt: job.resuming
557
+ ? runOptions.prompt
558
+ : needsCode
559
+ ? codingPrompt(runOptions.prompt, plan)
560
+ : noCodeWorkPrompt(runOptions.prompt, plan),
561
+ model: profiles.coding.model,
562
+ effort: profiles.coding.effort,
563
+ // A tool-only task still needs an execution turn for Nudge MCP, but
564
+ // it should not gain checkout writes merely because a work turn ran.
565
+ readOnly: !needsCode,
566
+ threadId: job.resuming ? job.threadId : null,
567
+ signal: state.abort.signal,
568
+ onThreadId: (id) => {
569
+ threadId = id;
570
+ },
571
+ env: board.repo
572
+ ? {
573
+ ...runOptions.env,
574
+ NUDGE_RUNNER_REPO: board.repo.name,
575
+ NUDGE_RUNNER_CWD: options.cwd,
576
+ ...(board.repo.defaultBranch
577
+ ? { NUDGE_RUNNER_DEFAULT_BRANCH: board.repo.defaultBranch }
578
+ : {}),
579
+ }
580
+ : runOptions.env,
581
+ });
582
+ addResult(coded);
583
+ prSearchText = coded.summary;
584
+ if (needsCode) {
536
585
  outputProfile = profiles.analysis;
537
586
  await reportPhase("reviewing");
538
587
  logs.push("event", `Reviewing with ${profiles.analysis.model} · ${profiles.analysis.effort}`);
@@ -549,6 +598,9 @@ export async function runNudgeRunner(argv) {
549
598
  addResult(reviewed);
550
599
  summary = reviewed.summary;
551
600
  }
601
+ else {
602
+ summary = coded.summary;
603
+ }
552
604
  }
553
605
  }
554
606
  catch (err) {
@@ -584,7 +636,7 @@ export async function runNudgeRunner(argv) {
584
636
  outputEffort: outputProfile.effort,
585
637
  });
586
638
  console.log(`[runner] ■ job ${job.id} → ${settled ?? status}${costUsd !== undefined ? ` ($${costUsd.toFixed(4)})` : ""}`);
587
- active = null;
639
+ active.delete(job.id);
588
640
  }
589
641
  // Report a terminal state and return what the job actually settled on — a
590
642
  // turn that ended with a question still unanswered is parked by the server
@@ -608,7 +660,7 @@ export async function runNudgeRunner(argv) {
608
660
  }
609
661
  }
610
662
  async function tryClaim(job) {
611
- if (active || claiming || stopped)
663
+ if (atCapacity() || claiming || stopped || active.has(job.id))
612
664
  return;
613
665
  claiming = true;
614
666
  try {
@@ -624,10 +676,10 @@ export async function runNudgeRunner(argv) {
624
676
  claiming = false;
625
677
  await runJob(result.job);
626
678
  // Drain the queue. The finish() write triggers exactly ONE subscription
627
- // push, and it can arrive while `active` is still set for the job that
628
- // just ended — in which case the handler ignores it, and with no
629
- // heartbeat nothing ever re-pushes. Ask once, explicitly, now that we
630
- // are definitely idle.
679
+ // push, and it can arrive while `active` still holds the job that just
680
+ // ended — in which case the handler ignores it, and with no heartbeat
681
+ // nothing ever re-pushes. Ask once, explicitly, now that a slot is
682
+ // definitely free.
631
683
  void checkForWork();
632
684
  }
633
685
  catch (err) {
@@ -640,7 +692,7 @@ export async function runNudgeRunner(argv) {
640
692
  // One-shot "anything for me?" — used after finishing a job, where relying
641
693
  // on the subscription alone can drop the only push (see tryClaim).
642
694
  async function checkForWork() {
643
- if (active || claiming || stopped)
695
+ if (atCapacity() || claiming || stopped)
644
696
  return;
645
697
  try {
646
698
  const result = (await client.query(fns.nextJob, {
@@ -649,7 +701,7 @@ export async function runNudgeRunner(argv) {
649
701
  }));
650
702
  if (!result.valid)
651
703
  return;
652
- if (!active && result.available)
704
+ if (!atCapacity() && result.available)
653
705
  await tryClaim(result.available);
654
706
  }
655
707
  catch (err) {
@@ -673,26 +725,31 @@ export async function runNudgeRunner(argv) {
673
725
  void shutdown();
674
726
  return;
675
727
  }
676
- // Cancellation of the job we're currently executing. Checked BEFORE the
677
- // steer branch a Stop must never be swallowed into a resume loop.
678
- if (active && result.assigned?.cancelRequested) {
679
- console.log("[runner] cancellation requested — aborting turn");
680
- active.cancelled = true;
681
- active.abort.abort();
682
- return;
683
- }
684
- // A mid-run note. Record it and abort the turn; runJob's execute loop
685
- // consumes it and resumes the same thread with the note's continuation.
686
- if (active &&
687
- result.assigned?.steer &&
688
- active.jobId === result.assigned.id &&
689
- active.steer?.steerId !== result.assigned.steer.steerId) {
690
- console.log("[runner] steer note received — interrupting the turn to apply it");
691
- active.steer = result.assigned.steer;
692
- active.abort.abort();
693
- return;
728
+ // Route cancellation and steer notes to the job they belong to with
729
+ // --concurrency several jobs are in flight, and one push can carry
730
+ // updates for any of them.
731
+ const assignedJobs = result.assignedJobs ?? (result.assigned ? [result.assigned] : []);
732
+ for (const assigned of assignedJobs) {
733
+ const state = active.get(assigned.id);
734
+ if (!state)
735
+ continue;
736
+ // Cancellation checked BEFORE the steer branch a Stop must never be
737
+ // swallowed into a resume loop.
738
+ if (assigned.cancelRequested) {
739
+ console.log(`[runner] cancellation requested — aborting job ${assigned.id}`);
740
+ state.cancelled = true;
741
+ state.abort.abort();
742
+ continue;
743
+ }
744
+ // A mid-run note. Record it and abort the turn; runJob's execute loop
745
+ // consumes it and resumes the same thread with the note's continuation.
746
+ if (assigned.steer && state.steer?.steerId !== assigned.steer.steerId) {
747
+ console.log(`[runner] steer note received — interrupting job ${assigned.id} to apply it`);
748
+ state.steer = assigned.steer;
749
+ state.abort.abort();
750
+ }
694
751
  }
695
- if (!active && result.available)
752
+ if (!atCapacity() && result.available)
696
753
  void tryClaim(result.available);
697
754
  }, (err) => {
698
755
  console.error("[runner] subscription error:", err.message);
@@ -703,17 +760,16 @@ export async function runNudgeRunner(argv) {
703
760
  return;
704
761
  stopped = true;
705
762
  unsubscribe?.();
706
- // Hand back an in-flight job rather than letting it sit until the lease
707
- // expires — a clean Ctrl-C should requeue immediately.
708
- if (active) {
709
- const jobId = active.jobId;
710
- active.cancelled = true;
711
- active.abort.abort();
763
+ // Hand back every in-flight job rather than letting them sit until the
764
+ // lease expires — a clean Ctrl-C should requeue immediately.
765
+ for (const state of [...active.values()]) {
766
+ state.cancelled = true;
767
+ state.abort.abort();
712
768
  try {
713
769
  await client.mutation(fns.finish, {
714
770
  token: options.token,
715
771
  runnerId,
716
- jobId,
772
+ jobId: state.jobId,
717
773
  status: "failed",
718
774
  error: "Runner shut down mid-job",
719
775
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import assert from "node:assert/strict";
2
2
  import test from "node:test";
3
- import { codingPrompt, needsCodeFromPlan, phaseProfiles } from "./runner.js";
3
+ import { codingPrompt, needsCodeFromPlan, noCodeWorkPrompt, parseConcurrency, phaseProfiles, } from "./runner.js";
4
4
  test("Claude tasks use Opus high around Sonnet low implementation", () => {
5
5
  assert.deepEqual(phaseProfiles("claude"), {
6
6
  analysis: { model: "opus", effort: "high" },
@@ -24,4 +24,23 @@ test("implementation treats a successful requested workflow as completion", () =
24
24
  assert.match(prompt, /do not call ask_human/i);
25
25
  assert.match(prompt, /request_review/);
26
26
  });
27
+ test("concurrency defaults to one job and clamps to the server ceiling", () => {
28
+ assert.equal(parseConcurrency(undefined), 1);
29
+ assert.equal(parseConcurrency(null), 1);
30
+ assert.equal(parseConcurrency(""), 1);
31
+ assert.equal(parseConcurrency("3"), 3);
32
+ assert.equal(parseConcurrency(2), 2);
33
+ assert.equal(parseConcurrency("99"), 8);
34
+ assert.equal(parseConcurrency("2.9"), 2);
35
+ assert.throws(() => parseConcurrency("0"));
36
+ assert.throws(() => parseConcurrency("-1"));
37
+ assert.throws(() => parseConcurrency("many"));
38
+ });
39
+ test("tasks without checkout changes still get an MCP-capable work turn", () => {
40
+ const prompt = noCodeWorkPrompt("Mark subtask card-2 completed and append a result to the task description", "No repository changes are needed.\nNEEDS_CODE: no");
41
+ assert.match(prompt, /complete the task/i);
42
+ assert.match(prompt, /Nudge MCP tools/i);
43
+ assert.match(prompt, /do not modify repository files/i);
44
+ assert.doesNotMatch(prompt, /produce a plan/i);
45
+ });
27
46
  //# sourceMappingURL=runner.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;QACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QACvC,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;QAClD,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;KAClD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;IAC/E,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -5,5 +5,5 @@
5
5
  // reported the same number, which made "why is my runner not starting?"
6
6
  // needlessly hard to diagnose. `npm run mcp:bump -- <release>` keeps this,
7
7
  // package.json, and package-lock.json synchronized.
8
- export const NUDGE_MCP_VERSION = "1.1.0";
8
+ export const NUDGE_MCP_VERSION = "1.3.0";
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@euqns/nudge-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server for the Nudge board (the in-house Trello).",
6
6
  "bin": {