@mrrlin-dev/mcp 0.3.41 → 0.3.42

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 +54 -6
  2. package/package.json +3 -3
package/dist/bin.cjs CHANGED
@@ -36358,6 +36358,7 @@ var openApiOperationIds = {
36358
36358
  listInboxItems: "listInboxItems",
36359
36359
  decideInboxItem: "decideInboxItem",
36360
36360
  markInboxItemRead: "markInboxItemRead",
36361
+ markInboxItemsReadByIds: "markInboxItemsReadByIds",
36361
36362
  markAllInboxItemsRead: "markAllInboxItemsRead",
36362
36363
  searchKnowledge: "searchKnowledge",
36363
36364
  updateExecutionRun: "updateExecutionRun",
@@ -37499,12 +37500,35 @@ var mrrlinSchedulerPendingReasonSchema = external_exports.enum([
37499
37500
  var mrrlinSchedulerPendingTaskSchema = external_exports.object({
37500
37501
  dueAt: external_exports.string().datetime(),
37501
37502
  reason: mrrlinSchedulerPendingReasonSchema,
37502
- task: mrrlinTaskSchema
37503
+ task: mrrlinTaskSchema,
37504
+ // Additive: whether the scheduler considers this task due NOW (per `deriveSchedulerDue`), as
37505
+ // opposed to `dueAt` reporting a future trigger or the evaluatedAt fallback when the task has no
37506
+ // trigger at all. Consumers must read this instead of re-deriving due-ness by re-parsing `dueAt`
37507
+ // against "now" — a task with no trigger has `dueAt === evaluatedAt`, which a naive `dueAt <= now`
37508
+ // re-derivation would misclassify as due.
37509
+ due: external_exports.boolean()
37510
+ });
37511
+ var mrrlinSchedulerParkedReasonSchema = external_exports.enum([
37512
+ "running",
37513
+ "awaiting_handoff",
37514
+ "awaiting_clarification",
37515
+ "spec_awaiting_approval",
37516
+ "blocked_by_active"
37517
+ ]);
37518
+ var mrrlinSchedulerParkedTaskSchema = external_exports.object({
37519
+ task: mrrlinTaskSchema,
37520
+ reason: mrrlinSchedulerParkedReasonSchema,
37521
+ blockedByIds: external_exports.array(mrrlinTaskIdSchema),
37522
+ inboxItemId: external_exports.string().nullable(),
37523
+ runId: mrrlinExecutionRunIdSchema.nullable()
37503
37524
  });
37504
37525
  var schedulerPendingTasksResponseSchema = external_exports.object({
37505
37526
  data: external_exports.object({
37506
37527
  evaluatedAt: external_exports.string().datetime(),
37507
37528
  pending: external_exports.array(mrrlinSchedulerPendingTaskSchema),
37529
+ parked: external_exports.array(mrrlinSchedulerParkedTaskSchema),
37530
+ slots: external_exports.number().int(),
37531
+ perProjectLimit: external_exports.number().int().min(1),
37508
37532
  policy: mrrlinProjectSchedulerPolicySchema
37509
37533
  })
37510
37534
  });
@@ -37594,6 +37618,7 @@ var mrrlinInboxItemSchema = external_exports.object({
37594
37618
  decidedBy: external_exports.string().min(1).nullable(),
37595
37619
  dedupKey: external_exports.string().nullable(),
37596
37620
  directorSessionId: external_exports.string().min(1).nullable(),
37621
+ groupId: external_exports.string().nullable().default(null),
37597
37622
  id: mrrlinInboxItemIdSchema,
37598
37623
  kind: mrrlinInboxItemKindSchema,
37599
37624
  origin: external_exports.string().nullable().optional(),
@@ -37616,6 +37641,7 @@ var mrrlinInboxItemCreateSchema = external_exports.object({
37616
37641
  actionPayload: mrrlinInboxItemActionPayloadSchema.nullable().optional(),
37617
37642
  body: external_exports.string().min(1),
37618
37643
  directorSessionId: external_exports.string().min(1).optional(),
37644
+ groupId: external_exports.string().min(1).optional(),
37619
37645
  id: mrrlinInboxItemIdSchema,
37620
37646
  kind: mrrlinInboxItemKindSchema,
37621
37647
  origin: external_exports.string().min(1).optional(),
@@ -37646,6 +37672,7 @@ var mrrlinInboxItemDecideSchema = external_exports.object({
37646
37672
  }
37647
37673
  });
37648
37674
  var mrrlinInboxItemListFiltersSchema = external_exports.object({
37675
+ groupId: external_exports.string().optional(),
37649
37676
  kind: mrrlinInboxItemKindSchema.optional(),
37650
37677
  readState: external_exports.enum(["read", "unread"]).optional(),
37651
37678
  status: mrrlinInboxItemStatusSchema.optional(),
@@ -37662,6 +37689,15 @@ var inboxMarkAllReadResponseSchema = external_exports.object({
37662
37689
  readAt: external_exports.string().datetime()
37663
37690
  })
37664
37691
  });
37692
+ var mrrlinInboxItemsMarkReadRequestSchema = external_exports.object({
37693
+ ids: external_exports.array(external_exports.string().min(1)).min(1)
37694
+ });
37695
+ var inboxItemsMarkReadResponseSchema = external_exports.object({
37696
+ data: external_exports.object({
37697
+ markedCount: external_exports.number().int().nonnegative(),
37698
+ readAt: external_exports.string().datetime()
37699
+ })
37700
+ });
37665
37701
  var inboxItemResponseSchema = external_exports.object({ data: mrrlinInboxItemSchema });
37666
37702
  var inboxItemListResponseSchema = external_exports.object({ data: external_exports.array(mrrlinInboxItemSchema) });
37667
37703
 
@@ -38284,6 +38320,14 @@ function createMrrlinClient(config2) {
38284
38320
  });
38285
38321
  return inboxItemReadResponseSchema.parse(body).data;
38286
38322
  },
38323
+ async markInboxItemsReadByIds(projectSlug, ids) {
38324
+ const body = await request(`${projectPath(projectSlug)}/inbox/mark-read`, {
38325
+ body: JSON.stringify({ ids }),
38326
+ headers: { "content-type": "application/json" },
38327
+ method: "POST"
38328
+ });
38329
+ return inboxItemsMarkReadResponseSchema.parse(body).data;
38330
+ },
38287
38331
  async markAllInboxItemsRead(projectSlug) {
38288
38332
  const body = await request(`${projectPath(projectSlug)}/inbox/mark-all-read`, {
38289
38333
  method: "POST"
@@ -38955,7 +38999,7 @@ function startCodexProbe(deps = {}) {
38955
38999
  }
38956
39000
 
38957
39001
  // src/_generated/version.ts
38958
- var PKG_VERSION = "0.3.41";
39002
+ var PKG_VERSION = "0.3.42";
38959
39003
 
38960
39004
  // src/api-base-url.ts
38961
39005
  var DEFAULT_API_BASE_URL = "http://127.0.0.1:8787";
@@ -53551,8 +53595,9 @@ async function run(ctx, input) {
53551
53595
  planId = plans.find((p) => p.specWikiPageId === input.pageId)?.id ?? null;
53552
53596
  }
53553
53597
  if (taskId) {
53598
+ const scopeId = taskId;
53599
+ const groupId = clarifications.length > 1 ? `II-${scopeId}-gate-group-${(0, import_node_crypto8.createHash)("sha256").update(clarifications.map((c) => c.question).sort().join("\n")).digest("hex").slice(0, 10)}` : void 0;
53554
53600
  for (const clarification of clarifications) {
53555
- const scopeId = taskId;
53556
53601
  const id = `II-${scopeId}-gate-${(0, import_node_crypto8.createHash)("sha256").update(clarification.question).digest("hex").slice(0, 10)}`;
53557
53602
  try {
53558
53603
  const questionOptions = buildGateQuestionOptions(clarification.question, clarification.category);
@@ -53562,15 +53607,17 @@ async function run(ctx, input) {
53562
53607
  taskId: scopeId,
53563
53608
  body: clarification.question,
53564
53609
  origin: "gate",
53565
- ...questionOptions ? { questionOptions } : {}
53610
+ ...questionOptions ? { questionOptions } : {},
53611
+ ...groupId ? { groupId } : {}
53566
53612
  });
53567
53613
  } catch {
53568
53614
  }
53569
53615
  }
53570
53616
  filedQuestionCount = clarifications.length;
53571
53617
  } else if (planId) {
53618
+ const scopeId = planId;
53619
+ const groupId = clarifications.length > 1 ? `II-${scopeId}-gate-group-${(0, import_node_crypto8.createHash)("sha256").update(clarifications.map((c) => c.question).sort().join("\n")).digest("hex").slice(0, 10)}` : void 0;
53572
53620
  for (const clarification of clarifications) {
53573
- const scopeId = planId;
53574
53621
  const id = `II-${scopeId}-gate-${(0, import_node_crypto8.createHash)("sha256").update(clarification.question).digest("hex").slice(0, 10)}`;
53575
53622
  try {
53576
53623
  const questionOptions = buildGateQuestionOptions(clarification.question, clarification.category);
@@ -53580,7 +53627,8 @@ async function run(ctx, input) {
53580
53627
  planId: scopeId,
53581
53628
  body: clarification.question,
53582
53629
  origin: "gate",
53583
- ...questionOptions ? { questionOptions } : {}
53630
+ ...questionOptions ? { questionOptions } : {},
53631
+ ...groupId ? { groupId } : {}
53584
53632
  });
53585
53633
  } catch {
53586
53634
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrrlin-dev/mcp",
3
- "version": "0.3.41",
3
+ "version": "0.3.42",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mrrlin-mcp": "dist/bin.cjs"
@@ -24,9 +24,9 @@
24
24
  "@mrrlin/director-e2e": "0.0.0",
25
25
  "@mrrlin/wiki": "0.0.0",
26
26
  "@mrrlin/schemas": "0.0.0",
27
+ "@mrrlin/client": "0.0.0",
27
28
  "@mrrlin/codex-client": "0.0.0",
28
- "@mrrlin/tsconfig": "0.0.0",
29
- "@mrrlin/client": "0.0.0"
29
+ "@mrrlin/tsconfig": "0.0.0"
30
30
  },
31
31
  "dependencies": {
32
32
  "@iarna/toml": "^2.2.5",