@mgsoftwarebv/mcp-server-bridge 3.3.4 → 3.3.6

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/index.js CHANGED
@@ -93101,6 +93101,9 @@ var tickets = pgTable(
93101
93101
  precision: 10,
93102
93102
  scale: 2
93103
93103
  }).default(0),
93104
+ // Deadline / due date - shown as a virtual "deadline" event in the agenda
93105
+ dueDate: timestamp("due_date", { withTimezone: true, mode: "string" }),
93106
+ dueDateAllDay: boolean3("due_date_all_day").notNull().default(false),
93104
93107
  // Origin tracking - how the ticket was created
93105
93108
  origin: ticketOriginEnum().default("manual").notNull(),
93106
93109
  // Structured context (e.g. visual review anchor metadata)
@@ -93177,6 +93180,7 @@ var tickets = pgTable(
93177
93180
  index("idx_tickets_status").on(table.status),
93178
93181
  index("idx_tickets_priority").on(table.priority),
93179
93182
  index("idx_tickets_created_at").using("btree", table.createdAt.desc()),
93183
+ index("idx_tickets_due_date").on(table.teamId, table.dueDate),
93180
93184
  index("idx_tickets_fts").using(
93181
93185
  "gin",
93182
93186
  table.fts.asc().nullsLast().op("tsvector_ops")
@@ -105613,6 +105617,10 @@ var TOOLS = [
105613
105617
  },
105614
105618
  projectId: { type: "string" },
105615
105619
  customerId: { type: "string" },
105620
+ dueDate: {
105621
+ type: "string",
105622
+ description: "Optional deadline / due date (ISO 8601, e.g. 2026-06-30). Shows as a deadline event in the agenda."
105623
+ },
105616
105624
  tags: {
105617
105625
  type: "array",
105618
105626
  items: { type: "string" },
@@ -105629,7 +105637,7 @@ var TOOLS = [
105629
105637
  },
105630
105638
  {
105631
105639
  name: "update-ticket",
105632
- description: "Update an existing ticket's fields (title, description, status, priority, type, project, customer, assignee, estimated hours, tags). Only provided fields are changed. Changes are written to the ticket activity feed but do NOT send notifications. Set assigneeId to null to unassign; a provided assigneeId must be a member of the ticket's team. Tags: use tagMode replace (default) to set the full tag list, merge to add tags, or remove to drop listed tags. Common workflow: set status=in_progress when starting work; after merge/push set status=review and assigneeId to the requester (creator) id from get-ticket-by-id.",
105640
+ description: "Update an existing ticket's fields (title, description, status, priority, type, project, customer, assignee, estimated hours, deadline/due date, tags). Only provided fields are changed. Changes are written to the ticket activity feed but do NOT send notifications. Set assigneeId to null to unassign; a provided assigneeId must be a member of the ticket's team. Set dueDate (ISO 8601, e.g. 2026-06-30 or 2026-06-30T00:00:00.000Z) to give the ticket a deadline that shows up in the agenda; set dueDate to null to clear it. Tags: use tagMode replace (default) to set the full tag list, merge to add tags, or remove to drop listed tags. Common workflow: set status=in_progress when starting work; after merge/push set status=review and assigneeId to the requester (creator) id from get-ticket-by-id.",
105633
105641
  inputSchema: {
105634
105642
  type: "object",
105635
105643
  properties: {
@@ -105675,7 +105683,7 @@ var TOOLS = [
105675
105683
  estimatedHours: { type: "number" },
105676
105684
  dueDate: {
105677
105685
  type: ["string", "null"],
105678
- description: "Ticket deadline as YYYY-MM-DD. Creates or updates a linked agenda item. Pass null to remove the deadline."
105686
+ description: "Deadline / due date (ISO 8601, e.g. 2026-06-30 or 2026-06-30T00:00:00.000Z). Shows as a deadline event in the agenda. Pass null to clear the deadline."
105679
105687
  },
105680
105688
  tags: {
105681
105689
  type: "array",
@@ -119801,6 +119809,10 @@ function tiptapToPlainText(content) {
119801
119809
  if (doc?.type !== "doc" || !Array.isArray(doc.content)) return content;
119802
119810
  return doc.content.map(renderNode).join("").trim();
119803
119811
  }
119812
+ function descriptionPlainText(content) {
119813
+ const text3 = tiptapToPlainText(content).trim();
119814
+ return text3 || null;
119815
+ }
119804
119816
 
119805
119817
  // src/tools/ticket-comments.ts
119806
119818
  async function handleAddTicketComment(input) {
@@ -120177,6 +120189,10 @@ async function handleUpdateTicket(input) {
120177
120189
  if (input.estimatedHours !== void 0) {
120178
120190
  updateValues.estimatedHours = input.estimatedHours;
120179
120191
  }
120192
+ if (input.dueDate !== void 0) {
120193
+ updateValues.dueDate = input.dueDate;
120194
+ updateValues.dueDateAllDay = input.dueDate ? true : false;
120195
+ }
120180
120196
  let deadlineChange = null;
120181
120197
  if (input.dueDate !== void 0) {
120182
120198
  deadlineChange = await syncTicketDeadline(
@@ -120575,6 +120591,7 @@ ${text3.split("\n").map((l4) => ` ${l4}`).join("\n")}`;
120575
120591
  const tagsLine = ticketTags2.length > 0 ? `Tags: ${formatTagList(ticketTags2)}
120576
120592
  ` : `Tags: (none)
120577
120593
  `;
120594
+ const descriptionText = descriptionPlainText(ticketRow.description);
120578
120595
  const content = [
120579
120596
  {
120580
120597
  type: "text",
@@ -120586,7 +120603,8 @@ Team id: ${ticketRow.teamId}
120586
120603
  Status: ${ticketRow.status}
120587
120604
  Priority: ${ticketRow.priority}
120588
120605
  Type: ${ticketRow.type}
120589
- ${ticketRow.description ? `Description: ${tiptapToPlainText(ticketRow.description)}
120606
+ ${ticketRow.dueDate ? `Deadline: ${new Date(ticketRow.dueDate).toLocaleDateString()}
120607
+ ` : ""}${descriptionText ? `Description: ${descriptionText}
120590
120608
  ` : ""}${ticketRow.project?.name ? `Project: ${ticketRow.project.name}
120591
120609
  ` : ""}${ticketRow.customer?.name ? `Customer: ${ticketRow.customer.name}
120592
120610
  ` : ""}` + tagsLine + assigneeLine + requesterLine + `Created: ${new Date(ticketRow.createdAt).toLocaleDateString()}
@@ -120667,6 +120685,7 @@ async function handleCreateTicket(input) {
120667
120685
  type = "task",
120668
120686
  projectId,
120669
120687
  customerId,
120688
+ dueDate,
120670
120689
  tags: tags2,
120671
120690
  tagIds
120672
120691
  } = input;
@@ -120729,13 +120748,15 @@ async function handleCreateTicket(input) {
120729
120748
  teamId: resolvedTeamId,
120730
120749
  ticketNumber,
120731
120750
  title,
120732
- description: description ?? null,
120751
+ description: ensureTipTapFormat(description),
120733
120752
  status,
120734
120753
  priority,
120735
120754
  type,
120736
120755
  projectId: projectId ?? null,
120737
120756
  customerId: resolvedCustomerId ?? null,
120738
- requesterId: ctx.userId
120757
+ requesterId: ctx.userId,
120758
+ dueDate: dueDate ?? null,
120759
+ dueDateAllDay: dueDate ? true : false
120739
120760
  }).returning({
120740
120761
  id: schema_exports.tickets.id,
120741
120762
  ticketNumber: schema_exports.tickets.ticketNumber
@@ -120775,7 +120796,8 @@ Title: ${title}
120775
120796
  Status: ${status}
120776
120797
  Priority: ${priority}
120777
120798
  Type: ${type}
120778
- ${appliedTags.length > 0 ? `Tags: ${formatTagList(appliedTags)}
120799
+ ${dueDate ? `Deadline: ${new Date(dueDate).toLocaleDateString()}
120800
+ ` : ""}${appliedTags.length > 0 ? `Tags: ${formatTagList(appliedTags)}
120779
120801
  ` : ""}${tagErrors.length > 0 ? `
120780
120802
  \u26A0\uFE0F Tag warnings:
120781
120803
  ${tagErrors.map((e6) => ` \u2022 ${e6}`).join("\n")}