@bike4mind/cli 0.2.29 → 0.2.30-cj-GH6259.19188
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/{artifactExtractor-4SBIE5OK.js → artifactExtractor-OHMWE4OJ.js} +1 -1
- package/dist/{chunk-22VR7SKO.js → chunk-5PMVJOAC.js} +2 -2
- package/dist/{chunk-YQWFK5O2.js → chunk-N7IZNCAL.js} +2 -2
- package/dist/{chunk-UYN4HMRF.js → chunk-NFJ434R6.js} +2 -2
- package/dist/{chunk-TNFZP7FG.js → chunk-TX3D6KIM.js} +699 -0
- package/dist/{chunk-5J4RL57F.js → chunk-ZBCO23NT.js} +11 -3
- package/dist/{create-DCHG36CP.js → create-MQEDJZHN.js} +3 -3
- package/dist/index.js +12 -11
- package/dist/{llmMarkdownGenerator-6MQKVOWW.js → llmMarkdownGenerator-5M4HUFOF.js} +1 -1
- package/dist/{markdownGenerator-4GDO3PTY.js → markdownGenerator-EFJNKDJ6.js} +1 -1
- package/dist/{mementoService-WDQFLLRV.js → mementoService-GUT6DOCW.js} +3 -3
- package/dist/{src-DVEE3PS5.js → src-5UAD757V.js} +2 -2
- package/dist/{src-ZAT7QMNA.js → src-HWYFK6YA.js} +33 -1
- package/dist/{subtractCredits-LE54FRKC.js → subtractCredits-PXVXNDCC.js} +3 -3
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CurationArtifactType
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TX3D6KIM.js";
|
|
5
5
|
|
|
6
6
|
// ../../b4m-core/packages/services/dist/src/notebookCurationService/artifactExtractor.js
|
|
7
7
|
var ARTIFACT_TAG_REGEX = /<artifact\s+(.*?)>([\s\S]*?)<\/artifact>/gi;
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
getSettingsByNames,
|
|
7
7
|
obfuscateApiKey,
|
|
8
8
|
secureParameters
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZBCO23NT.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiKeyType,
|
|
12
12
|
MementoTier,
|
|
13
13
|
isSupportedEmbeddingModel
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TX3D6KIM.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
getSettingsMap,
|
|
8
8
|
getSettingsValue,
|
|
9
9
|
secureParameters
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZBCO23NT.js";
|
|
11
11
|
import {
|
|
12
12
|
KnowledgeType,
|
|
13
13
|
SupportedFabFileMimeTypes
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TX3D6KIM.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/fabFileService/create.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BadRequestError,
|
|
4
4
|
secureParameters
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZBCO23NT.js";
|
|
6
6
|
import {
|
|
7
7
|
CompletionApiUsageTransaction,
|
|
8
8
|
GenericCreditDeductTransaction,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
TextGenerationUsageTransaction,
|
|
13
13
|
TransferCreditTransaction,
|
|
14
14
|
VideoGenerationUsageTransaction
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-TX3D6KIM.js";
|
|
16
16
|
|
|
17
17
|
// ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
|
|
18
18
|
import { z } from "zod";
|
|
@@ -1061,6 +1061,25 @@ var WebhookDeliveryStatus;
|
|
|
1061
1061
|
WebhookDeliveryStatus2["Pending"] = "pending";
|
|
1062
1062
|
})(WebhookDeliveryStatus || (WebhookDeliveryStatus = {}));
|
|
1063
1063
|
|
|
1064
|
+
// ../../b4m-core/packages/common/dist/src/types/entities/JiraWebhookConfigTypes.js
|
|
1065
|
+
var COMMON_JIRA_WEBHOOK_EVENTS = [
|
|
1066
|
+
"jira:issue_created",
|
|
1067
|
+
"jira:issue_updated",
|
|
1068
|
+
"comment_created",
|
|
1069
|
+
"comment_updated",
|
|
1070
|
+
"sprint_started",
|
|
1071
|
+
"sprint_closed"
|
|
1072
|
+
];
|
|
1073
|
+
|
|
1074
|
+
// ../../b4m-core/packages/common/dist/src/types/entities/JiraWebhookDeliveryTypes.js
|
|
1075
|
+
var JiraWebhookDeliveryStatus;
|
|
1076
|
+
(function(JiraWebhookDeliveryStatus2) {
|
|
1077
|
+
JiraWebhookDeliveryStatus2["Success"] = "success";
|
|
1078
|
+
JiraWebhookDeliveryStatus2["Failed"] = "failed";
|
|
1079
|
+
JiraWebhookDeliveryStatus2["Filtered"] = "filtered";
|
|
1080
|
+
JiraWebhookDeliveryStatus2["Pending"] = "pending";
|
|
1081
|
+
})(JiraWebhookDeliveryStatus || (JiraWebhookDeliveryStatus = {}));
|
|
1082
|
+
|
|
1064
1083
|
// ../../b4m-core/packages/common/dist/src/types/common.js
|
|
1065
1084
|
var SupportedFabFileMimeTypes;
|
|
1066
1085
|
(function(SupportedFabFileMimeTypes2) {
|
|
@@ -1105,6 +1124,24 @@ var SupportedFabFileMimeTypes;
|
|
|
1105
1124
|
SupportedFabFileMimeTypes2["INI"] = "text/plain";
|
|
1106
1125
|
SupportedFabFileMimeTypes2["CONF"] = "text/plain";
|
|
1107
1126
|
})(SupportedFabFileMimeTypes || (SupportedFabFileMimeTypes = {}));
|
|
1127
|
+
var REASONING_EFFORT_LABELS = {
|
|
1128
|
+
auto: "Auto (recommended)",
|
|
1129
|
+
none: "None - Fastest",
|
|
1130
|
+
minimal: "Minimal",
|
|
1131
|
+
low: "Low",
|
|
1132
|
+
medium: "Medium",
|
|
1133
|
+
high: "High",
|
|
1134
|
+
xhigh: "Extra High - Best Quality"
|
|
1135
|
+
};
|
|
1136
|
+
var REASONING_EFFORT_DESCRIPTIONS = {
|
|
1137
|
+
auto: "Automatically adjusts reasoning effort based on query complexity",
|
|
1138
|
+
none: "No extended reasoning, fastest responses",
|
|
1139
|
+
minimal: "Very light reasoning for simple queries",
|
|
1140
|
+
low: "Light reasoning for straightforward tasks",
|
|
1141
|
+
medium: "Balanced reasoning for most tasks",
|
|
1142
|
+
high: "Deep reasoning for complex problems",
|
|
1143
|
+
xhigh: "Maximum reasoning depth for highest quality (GPT-5.2 Pro/Thinking only)"
|
|
1144
|
+
};
|
|
1108
1145
|
var CODE_FILE_MIME_TYPES = [
|
|
1109
1146
|
SupportedFabFileMimeTypes.TS,
|
|
1110
1147
|
SupportedFabFileMimeTypes.JS,
|
|
@@ -7238,6 +7275,589 @@ var AgileApi = class {
|
|
|
7238
7275
|
}
|
|
7239
7276
|
};
|
|
7240
7277
|
|
|
7278
|
+
// ../../b4m-core/packages/common/dist/src/jira/webhook/format.js
|
|
7279
|
+
function daysUntil(dateString) {
|
|
7280
|
+
const expirationDate = new Date(dateString);
|
|
7281
|
+
const now = /* @__PURE__ */ new Date();
|
|
7282
|
+
const diffMs = expirationDate.getTime() - now.getTime();
|
|
7283
|
+
return Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
|
|
7284
|
+
}
|
|
7285
|
+
function formatWebhook(webhook) {
|
|
7286
|
+
const daysUntilExpiry = daysUntil(webhook.expirationDate);
|
|
7287
|
+
return {
|
|
7288
|
+
id: webhook.id,
|
|
7289
|
+
events: webhook.events,
|
|
7290
|
+
jqlFilter: webhook.jqlFilter,
|
|
7291
|
+
expirationDate: webhook.expirationDate,
|
|
7292
|
+
daysUntilExpiry,
|
|
7293
|
+
isExpiringSoon: daysUntilExpiry < 7
|
|
7294
|
+
};
|
|
7295
|
+
}
|
|
7296
|
+
function formatWebhookList(response) {
|
|
7297
|
+
return {
|
|
7298
|
+
webhooks: response.values.map(formatWebhook),
|
|
7299
|
+
total: response.total,
|
|
7300
|
+
hasMore: !response.isLast
|
|
7301
|
+
};
|
|
7302
|
+
}
|
|
7303
|
+
function escapeSlackMrkdwn(text) {
|
|
7304
|
+
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\*/g, "\u2217").replace(/_/g, "\uFF3F").replace(/~/g, "\u223C").replace(/`/g, "\u02CB");
|
|
7305
|
+
}
|
|
7306
|
+
var PRIORITY_EMOJI = {
|
|
7307
|
+
Highest: ":red_circle:",
|
|
7308
|
+
High: ":large_orange_circle:",
|
|
7309
|
+
Medium: ":large_yellow_circle:",
|
|
7310
|
+
Low: ":large_green_circle:",
|
|
7311
|
+
Lowest: ":white_circle:"
|
|
7312
|
+
};
|
|
7313
|
+
function getPriorityEmoji(priority) {
|
|
7314
|
+
if (!priority)
|
|
7315
|
+
return "";
|
|
7316
|
+
return PRIORITY_EMOJI[priority] || ":blue_circle:";
|
|
7317
|
+
}
|
|
7318
|
+
function formatIssueEventForSlack(event, siteUrl) {
|
|
7319
|
+
const { issue, webhookEvent, user, changelog } = event;
|
|
7320
|
+
const { fields } = issue;
|
|
7321
|
+
const priorityEmoji = getPriorityEmoji(fields.priority?.name);
|
|
7322
|
+
const issueUrl = `${siteUrl}/browse/${issue.key}`;
|
|
7323
|
+
let action;
|
|
7324
|
+
let emoji;
|
|
7325
|
+
switch (webhookEvent) {
|
|
7326
|
+
case "jira:issue_created":
|
|
7327
|
+
action = "created";
|
|
7328
|
+
emoji = ":new:";
|
|
7329
|
+
break;
|
|
7330
|
+
case "jira:issue_updated":
|
|
7331
|
+
action = "updated";
|
|
7332
|
+
emoji = ":pencil2:";
|
|
7333
|
+
break;
|
|
7334
|
+
case "jira:issue_deleted":
|
|
7335
|
+
action = "deleted";
|
|
7336
|
+
emoji = ":wastebasket:";
|
|
7337
|
+
break;
|
|
7338
|
+
default:
|
|
7339
|
+
action = "changed";
|
|
7340
|
+
emoji = ":bell:";
|
|
7341
|
+
}
|
|
7342
|
+
let changelogText = "";
|
|
7343
|
+
if (changelog?.items && changelog.items.length > 0) {
|
|
7344
|
+
const changes = changelog.items.slice(0, 3).map((item) => {
|
|
7345
|
+
const from = escapeSlackMrkdwn(item.fromString || "None");
|
|
7346
|
+
const to = escapeSlackMrkdwn(item.toString || "None");
|
|
7347
|
+
if (item.field === "status") {
|
|
7348
|
+
return `Status: ${from} \u2192 ${to}`;
|
|
7349
|
+
}
|
|
7350
|
+
if (item.field === "assignee") {
|
|
7351
|
+
return `Assignee: ${escapeSlackMrkdwn(item.fromString || "Unassigned")} \u2192 ${escapeSlackMrkdwn(item.toString || "Unassigned")}`;
|
|
7352
|
+
}
|
|
7353
|
+
if (item.field === "priority") {
|
|
7354
|
+
return `Priority: ${from} \u2192 ${to}`;
|
|
7355
|
+
}
|
|
7356
|
+
return `${escapeSlackMrkdwn(item.field)}: ${from} \u2192 ${to}`;
|
|
7357
|
+
});
|
|
7358
|
+
if (changes.length > 0) {
|
|
7359
|
+
changelogText = "\n" + changes.map((c) => `\u2022 ${c}`).join("\n");
|
|
7360
|
+
if (changelog.items.length > 3) {
|
|
7361
|
+
changelogText += `
|
|
7362
|
+
_...and ${changelog.items.length - 3} more changes_`;
|
|
7363
|
+
}
|
|
7364
|
+
}
|
|
7365
|
+
}
|
|
7366
|
+
const blocks = [
|
|
7367
|
+
{
|
|
7368
|
+
type: "header",
|
|
7369
|
+
text: {
|
|
7370
|
+
type: "plain_text",
|
|
7371
|
+
text: `${emoji} Issue ${action}: ${escapeSlackMrkdwn(issue.key)}`,
|
|
7372
|
+
emoji: true
|
|
7373
|
+
}
|
|
7374
|
+
},
|
|
7375
|
+
{
|
|
7376
|
+
type: "section",
|
|
7377
|
+
text: {
|
|
7378
|
+
type: "mrkdwn",
|
|
7379
|
+
text: `*<${issueUrl}|${escapeSlackMrkdwn(issue.key)}>* ${escapeSlackMrkdwn(fields.summary)}`
|
|
7380
|
+
}
|
|
7381
|
+
},
|
|
7382
|
+
{
|
|
7383
|
+
type: "section",
|
|
7384
|
+
text: {
|
|
7385
|
+
type: "mrkdwn",
|
|
7386
|
+
text: [
|
|
7387
|
+
`${priorityEmoji} *Priority:* ${escapeSlackMrkdwn(fields.priority?.name || "None")}`,
|
|
7388
|
+
`*Status:* ${escapeSlackMrkdwn(fields.status.name)}`,
|
|
7389
|
+
`*Type:* ${escapeSlackMrkdwn(fields.issuetype.name)}`,
|
|
7390
|
+
`*Assignee:* ${escapeSlackMrkdwn(fields.assignee?.displayName || "Unassigned")}`
|
|
7391
|
+
].join(" | ")
|
|
7392
|
+
}
|
|
7393
|
+
}
|
|
7394
|
+
];
|
|
7395
|
+
if (changelogText) {
|
|
7396
|
+
blocks.push({
|
|
7397
|
+
type: "section",
|
|
7398
|
+
text: {
|
|
7399
|
+
type: "mrkdwn",
|
|
7400
|
+
text: `*Changes:*${changelogText}`
|
|
7401
|
+
}
|
|
7402
|
+
});
|
|
7403
|
+
}
|
|
7404
|
+
blocks.push({
|
|
7405
|
+
type: "context",
|
|
7406
|
+
elements: [
|
|
7407
|
+
{
|
|
7408
|
+
type: "mrkdwn",
|
|
7409
|
+
text: `${escapeSlackMrkdwn(user?.displayName || "Someone")} \u2022 ${escapeSlackMrkdwn(fields.project.name)} (${escapeSlackMrkdwn(fields.project.key)})`
|
|
7410
|
+
}
|
|
7411
|
+
]
|
|
7412
|
+
});
|
|
7413
|
+
blocks.push({
|
|
7414
|
+
type: "actions",
|
|
7415
|
+
elements: [
|
|
7416
|
+
{
|
|
7417
|
+
type: "button",
|
|
7418
|
+
text: {
|
|
7419
|
+
type: "plain_text",
|
|
7420
|
+
text: "View in Jira",
|
|
7421
|
+
emoji: true
|
|
7422
|
+
},
|
|
7423
|
+
url: issueUrl,
|
|
7424
|
+
style: "primary"
|
|
7425
|
+
}
|
|
7426
|
+
]
|
|
7427
|
+
});
|
|
7428
|
+
return {
|
|
7429
|
+
blocks,
|
|
7430
|
+
text: `${emoji} ${escapeSlackMrkdwn(issue.key)} ${action}: ${escapeSlackMrkdwn(fields.summary)}`
|
|
7431
|
+
};
|
|
7432
|
+
}
|
|
7433
|
+
function formatCommentEventForSlack(event, siteUrl) {
|
|
7434
|
+
const { issue, comment, webhookEvent } = event;
|
|
7435
|
+
const issueUrl = `${siteUrl}/browse/${issue.key}`;
|
|
7436
|
+
let action;
|
|
7437
|
+
let emoji;
|
|
7438
|
+
switch (webhookEvent) {
|
|
7439
|
+
case "comment_created":
|
|
7440
|
+
action = "commented on";
|
|
7441
|
+
emoji = ":speech_balloon:";
|
|
7442
|
+
break;
|
|
7443
|
+
case "comment_updated":
|
|
7444
|
+
action = "updated comment on";
|
|
7445
|
+
emoji = ":pencil:";
|
|
7446
|
+
break;
|
|
7447
|
+
case "comment_deleted":
|
|
7448
|
+
action = "deleted comment on";
|
|
7449
|
+
emoji = ":x:";
|
|
7450
|
+
break;
|
|
7451
|
+
default:
|
|
7452
|
+
action = "commented on";
|
|
7453
|
+
emoji = ":speech_balloon:";
|
|
7454
|
+
}
|
|
7455
|
+
const blocks = [
|
|
7456
|
+
{
|
|
7457
|
+
type: "header",
|
|
7458
|
+
text: {
|
|
7459
|
+
type: "plain_text",
|
|
7460
|
+
text: `${emoji} ${escapeSlackMrkdwn(comment.author.displayName)} ${action} ${escapeSlackMrkdwn(issue.key)}`,
|
|
7461
|
+
emoji: true
|
|
7462
|
+
}
|
|
7463
|
+
},
|
|
7464
|
+
{
|
|
7465
|
+
type: "section",
|
|
7466
|
+
text: {
|
|
7467
|
+
type: "mrkdwn",
|
|
7468
|
+
text: `*<${issueUrl}|${escapeSlackMrkdwn(issue.key)}>* ${escapeSlackMrkdwn(issue.fields.summary)}`
|
|
7469
|
+
}
|
|
7470
|
+
},
|
|
7471
|
+
{
|
|
7472
|
+
type: "context",
|
|
7473
|
+
elements: [
|
|
7474
|
+
{
|
|
7475
|
+
type: "mrkdwn",
|
|
7476
|
+
text: `${escapeSlackMrkdwn(issue.fields.project.name)} \u2022 ${escapeSlackMrkdwn(issue.fields.issuetype.name)}`
|
|
7477
|
+
}
|
|
7478
|
+
]
|
|
7479
|
+
},
|
|
7480
|
+
{
|
|
7481
|
+
type: "actions",
|
|
7482
|
+
elements: [
|
|
7483
|
+
{
|
|
7484
|
+
type: "button",
|
|
7485
|
+
text: {
|
|
7486
|
+
type: "plain_text",
|
|
7487
|
+
text: "View in Jira",
|
|
7488
|
+
emoji: true
|
|
7489
|
+
},
|
|
7490
|
+
url: issueUrl,
|
|
7491
|
+
style: "primary"
|
|
7492
|
+
}
|
|
7493
|
+
]
|
|
7494
|
+
}
|
|
7495
|
+
];
|
|
7496
|
+
return {
|
|
7497
|
+
blocks,
|
|
7498
|
+
text: `${emoji} ${escapeSlackMrkdwn(comment.author.displayName)} ${action} ${escapeSlackMrkdwn(issue.key)}: ${escapeSlackMrkdwn(issue.fields.summary)}`
|
|
7499
|
+
};
|
|
7500
|
+
}
|
|
7501
|
+
function formatSprintEventForSlack(event, siteUrl) {
|
|
7502
|
+
const { sprint, webhookEvent, user } = event;
|
|
7503
|
+
let action;
|
|
7504
|
+
let emoji;
|
|
7505
|
+
switch (webhookEvent) {
|
|
7506
|
+
case "sprint_created":
|
|
7507
|
+
action = "created";
|
|
7508
|
+
emoji = ":calendar:";
|
|
7509
|
+
break;
|
|
7510
|
+
case "sprint_started":
|
|
7511
|
+
action = "started";
|
|
7512
|
+
emoji = ":rocket:";
|
|
7513
|
+
break;
|
|
7514
|
+
case "sprint_closed":
|
|
7515
|
+
action = "completed";
|
|
7516
|
+
emoji = ":checkered_flag:";
|
|
7517
|
+
break;
|
|
7518
|
+
case "sprint_updated":
|
|
7519
|
+
action = "updated";
|
|
7520
|
+
emoji = ":pencil2:";
|
|
7521
|
+
break;
|
|
7522
|
+
case "sprint_deleted":
|
|
7523
|
+
action = "deleted";
|
|
7524
|
+
emoji = ":wastebasket:";
|
|
7525
|
+
break;
|
|
7526
|
+
default:
|
|
7527
|
+
action = "changed";
|
|
7528
|
+
emoji = ":bell:";
|
|
7529
|
+
}
|
|
7530
|
+
const sprintUrl = `${siteUrl}/secure/RapidBoard.jspa?rapidView=${sprint.originBoardId}`;
|
|
7531
|
+
const blocks = [
|
|
7532
|
+
{
|
|
7533
|
+
type: "header",
|
|
7534
|
+
text: {
|
|
7535
|
+
type: "plain_text",
|
|
7536
|
+
text: `${emoji} Sprint ${action}: ${escapeSlackMrkdwn(sprint.name)}`,
|
|
7537
|
+
emoji: true
|
|
7538
|
+
}
|
|
7539
|
+
},
|
|
7540
|
+
{
|
|
7541
|
+
type: "section",
|
|
7542
|
+
text: {
|
|
7543
|
+
type: "mrkdwn",
|
|
7544
|
+
text: [
|
|
7545
|
+
`*State:* ${escapeSlackMrkdwn(sprint.state)}`,
|
|
7546
|
+
sprint.startDate ? `*Start:* ${new Date(sprint.startDate).toLocaleDateString()}` : "",
|
|
7547
|
+
sprint.endDate ? `*End:* ${new Date(sprint.endDate).toLocaleDateString()}` : ""
|
|
7548
|
+
].filter(Boolean).join(" | ")
|
|
7549
|
+
}
|
|
7550
|
+
}
|
|
7551
|
+
];
|
|
7552
|
+
if (sprint.goal) {
|
|
7553
|
+
blocks.push({
|
|
7554
|
+
type: "section",
|
|
7555
|
+
text: {
|
|
7556
|
+
type: "mrkdwn",
|
|
7557
|
+
text: `*Goal:* ${escapeSlackMrkdwn(sprint.goal)}`
|
|
7558
|
+
}
|
|
7559
|
+
});
|
|
7560
|
+
}
|
|
7561
|
+
blocks.push({
|
|
7562
|
+
type: "context",
|
|
7563
|
+
elements: [
|
|
7564
|
+
{
|
|
7565
|
+
type: "mrkdwn",
|
|
7566
|
+
text: user?.displayName ? escapeSlackMrkdwn(user.displayName) : "System"
|
|
7567
|
+
}
|
|
7568
|
+
]
|
|
7569
|
+
});
|
|
7570
|
+
blocks.push({
|
|
7571
|
+
type: "actions",
|
|
7572
|
+
elements: [
|
|
7573
|
+
{
|
|
7574
|
+
type: "button",
|
|
7575
|
+
text: {
|
|
7576
|
+
type: "plain_text",
|
|
7577
|
+
text: "View Board",
|
|
7578
|
+
emoji: true
|
|
7579
|
+
},
|
|
7580
|
+
url: sprintUrl,
|
|
7581
|
+
style: "primary"
|
|
7582
|
+
}
|
|
7583
|
+
]
|
|
7584
|
+
});
|
|
7585
|
+
return {
|
|
7586
|
+
blocks,
|
|
7587
|
+
text: `${emoji} Sprint ${action}: ${escapeSlackMrkdwn(sprint.name)}`
|
|
7588
|
+
};
|
|
7589
|
+
}
|
|
7590
|
+
function formatGenericEventForSlack(eventType, payload, siteUrl) {
|
|
7591
|
+
const issue = payload.issue;
|
|
7592
|
+
const user = payload.user;
|
|
7593
|
+
const issueLink = payload.issueLink;
|
|
7594
|
+
const changelog = payload.changelog;
|
|
7595
|
+
const project = payload.project ?? issue?.fields?.project;
|
|
7596
|
+
const version = payload.version;
|
|
7597
|
+
const worklog = payload.worklog;
|
|
7598
|
+
const board = payload.board;
|
|
7599
|
+
const readableEvent = eventType.replace(/^jira:/, "").replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
7600
|
+
const blocks = [
|
|
7601
|
+
{
|
|
7602
|
+
type: "header",
|
|
7603
|
+
text: {
|
|
7604
|
+
type: "plain_text",
|
|
7605
|
+
text: `:bell: ${readableEvent}`,
|
|
7606
|
+
emoji: true
|
|
7607
|
+
}
|
|
7608
|
+
}
|
|
7609
|
+
];
|
|
7610
|
+
const details = [];
|
|
7611
|
+
if (issue?.key) {
|
|
7612
|
+
const issueUrl = `${siteUrl}/browse/${issue.key}`;
|
|
7613
|
+
blocks.push({
|
|
7614
|
+
type: "section",
|
|
7615
|
+
text: {
|
|
7616
|
+
type: "mrkdwn",
|
|
7617
|
+
text: `*<${issueUrl}|${escapeSlackMrkdwn(issue.key)}>* ${escapeSlackMrkdwn(issue.fields?.summary || "")}`
|
|
7618
|
+
}
|
|
7619
|
+
});
|
|
7620
|
+
const meta = [];
|
|
7621
|
+
if (issue.fields?.status?.name)
|
|
7622
|
+
meta.push(`*Status:* ${escapeSlackMrkdwn(issue.fields.status.name)}`);
|
|
7623
|
+
if (issue.fields?.issuetype?.name)
|
|
7624
|
+
meta.push(`*Type:* ${escapeSlackMrkdwn(issue.fields.issuetype.name)}`);
|
|
7625
|
+
if (issue.fields?.priority?.name) {
|
|
7626
|
+
const emoji = getPriorityEmoji(issue.fields.priority.name);
|
|
7627
|
+
meta.push(`${emoji} *Priority:* ${escapeSlackMrkdwn(issue.fields.priority.name)}`);
|
|
7628
|
+
}
|
|
7629
|
+
if (issue.fields?.assignee?.displayName)
|
|
7630
|
+
meta.push(`*Assignee:* ${escapeSlackMrkdwn(issue.fields.assignee.displayName)}`);
|
|
7631
|
+
if (meta.length > 0)
|
|
7632
|
+
details.push(meta.join(" | "));
|
|
7633
|
+
}
|
|
7634
|
+
if (issueLink?.issueLinkType) {
|
|
7635
|
+
const linkType = issueLink.issueLinkType;
|
|
7636
|
+
const linkDesc = escapeSlackMrkdwn(linkType.outwardName || linkType.name || "linked");
|
|
7637
|
+
details.push(`*Link type:* ${linkDesc}`);
|
|
7638
|
+
if (issueLink.sourceIssueId)
|
|
7639
|
+
details.push(`*Source issue ID:* ${issueLink.sourceIssueId}`);
|
|
7640
|
+
if (issueLink.destinationIssueId)
|
|
7641
|
+
details.push(`*Destination issue ID:* ${issueLink.destinationIssueId}`);
|
|
7642
|
+
}
|
|
7643
|
+
if (version?.name) {
|
|
7644
|
+
const versionParts = [`*Version:* ${escapeSlackMrkdwn(version.name)}`];
|
|
7645
|
+
if (version.description)
|
|
7646
|
+
versionParts.push(escapeSlackMrkdwn(version.description));
|
|
7647
|
+
if (version.released !== void 0)
|
|
7648
|
+
versionParts.push(version.released ? ":white_check_mark: Released" : "Unreleased");
|
|
7649
|
+
details.push(versionParts.join(" | "));
|
|
7650
|
+
}
|
|
7651
|
+
if (worklog) {
|
|
7652
|
+
const wlParts = [];
|
|
7653
|
+
if (worklog.author?.displayName)
|
|
7654
|
+
wlParts.push(`*By:* ${escapeSlackMrkdwn(worklog.author.displayName)}`);
|
|
7655
|
+
if (worklog.timeSpent)
|
|
7656
|
+
wlParts.push(`*Time:* ${escapeSlackMrkdwn(worklog.timeSpent)}`);
|
|
7657
|
+
if (wlParts.length > 0)
|
|
7658
|
+
details.push(wlParts.join(" | "));
|
|
7659
|
+
}
|
|
7660
|
+
if (board?.name) {
|
|
7661
|
+
details.push(`*Board:* ${escapeSlackMrkdwn(board.name)}`);
|
|
7662
|
+
}
|
|
7663
|
+
if (changelog?.items && changelog.items.length > 0) {
|
|
7664
|
+
const changes = changelog.items.slice(0, 3).map((item) => `\u2022 ${escapeSlackMrkdwn(item.field || "")}: ${escapeSlackMrkdwn(item.fromString || "None")} \u2192 ${escapeSlackMrkdwn(item.toString || "None")}`);
|
|
7665
|
+
if (changelog.items.length > 3) {
|
|
7666
|
+
changes.push(`_...and ${changelog.items.length - 3} more_`);
|
|
7667
|
+
}
|
|
7668
|
+
details.push(`*Changes:*
|
|
7669
|
+
${changes.join("\n")}`);
|
|
7670
|
+
}
|
|
7671
|
+
if (details.length > 0) {
|
|
7672
|
+
blocks.push({
|
|
7673
|
+
type: "section",
|
|
7674
|
+
text: {
|
|
7675
|
+
type: "mrkdwn",
|
|
7676
|
+
text: details.join("\n")
|
|
7677
|
+
}
|
|
7678
|
+
});
|
|
7679
|
+
}
|
|
7680
|
+
const contextParts = [];
|
|
7681
|
+
if (user?.displayName)
|
|
7682
|
+
contextParts.push(escapeSlackMrkdwn(user.displayName));
|
|
7683
|
+
if (project?.name)
|
|
7684
|
+
contextParts.push(`${escapeSlackMrkdwn(project.name)}${project.key ? ` (${escapeSlackMrkdwn(project.key)})` : ""}`);
|
|
7685
|
+
if (contextParts.length > 0) {
|
|
7686
|
+
blocks.push({
|
|
7687
|
+
type: "context",
|
|
7688
|
+
elements: [{ type: "mrkdwn", text: contextParts.join(" \u2022 ") }]
|
|
7689
|
+
});
|
|
7690
|
+
}
|
|
7691
|
+
if (issue?.key) {
|
|
7692
|
+
const issueUrl = `${siteUrl}/browse/${issue.key}`;
|
|
7693
|
+
blocks.push({
|
|
7694
|
+
type: "actions",
|
|
7695
|
+
elements: [
|
|
7696
|
+
{
|
|
7697
|
+
type: "button",
|
|
7698
|
+
text: { type: "plain_text", text: "View in Jira", emoji: true },
|
|
7699
|
+
url: issueUrl,
|
|
7700
|
+
style: "primary"
|
|
7701
|
+
}
|
|
7702
|
+
]
|
|
7703
|
+
});
|
|
7704
|
+
}
|
|
7705
|
+
const summary = issue?.key ? `${escapeSlackMrkdwn(issue.key)}: ${escapeSlackMrkdwn(issue.fields?.summary || readableEvent)}` : readableEvent;
|
|
7706
|
+
return {
|
|
7707
|
+
blocks,
|
|
7708
|
+
text: `:bell: ${summary}`
|
|
7709
|
+
};
|
|
7710
|
+
}
|
|
7711
|
+
|
|
7712
|
+
// ../../b4m-core/packages/common/dist/src/jira/webhook/api.js
|
|
7713
|
+
var WebhookApi = class {
|
|
7714
|
+
config;
|
|
7715
|
+
constructor(config) {
|
|
7716
|
+
this.config = config;
|
|
7717
|
+
}
|
|
7718
|
+
/**
|
|
7719
|
+
* Build URL for webhook API endpoints.
|
|
7720
|
+
*
|
|
7721
|
+
* Note: Webhooks use a different base URL than other Jira APIs.
|
|
7722
|
+
*/
|
|
7723
|
+
buildUrl(path, query = {}) {
|
|
7724
|
+
const url = new URL(`${this.config.apiBaseUrl}${path}`);
|
|
7725
|
+
for (const [key, value] of Object.entries(query)) {
|
|
7726
|
+
if (value !== void 0) {
|
|
7727
|
+
url.searchParams.append(key, String(value));
|
|
7728
|
+
}
|
|
7729
|
+
}
|
|
7730
|
+
return url.toString();
|
|
7731
|
+
}
|
|
7732
|
+
/**
|
|
7733
|
+
* Make an authenticated request to the Jira Webhook API.
|
|
7734
|
+
*/
|
|
7735
|
+
async request(method, path, options = {}) {
|
|
7736
|
+
const url = this.buildUrl(path, options.query);
|
|
7737
|
+
const headers = {
|
|
7738
|
+
Authorization: this.config.authHeader,
|
|
7739
|
+
Accept: "application/json",
|
|
7740
|
+
"Content-Type": "application/json"
|
|
7741
|
+
};
|
|
7742
|
+
const response = await fetch(url, {
|
|
7743
|
+
method,
|
|
7744
|
+
headers,
|
|
7745
|
+
body: options.body ? JSON.stringify(options.body) : void 0
|
|
7746
|
+
});
|
|
7747
|
+
if (!response.ok) {
|
|
7748
|
+
const errorBody = await response.text();
|
|
7749
|
+
throw new Error(`Jira Webhook API error (${response.status}): ${errorBody}`);
|
|
7750
|
+
}
|
|
7751
|
+
if (response.status === 204) {
|
|
7752
|
+
return {};
|
|
7753
|
+
}
|
|
7754
|
+
const data = await response.json();
|
|
7755
|
+
return data;
|
|
7756
|
+
}
|
|
7757
|
+
// ============================================================================
|
|
7758
|
+
// Webhook CRUD Operations
|
|
7759
|
+
// ============================================================================
|
|
7760
|
+
/**
|
|
7761
|
+
* List all webhooks registered by this OAuth app.
|
|
7762
|
+
*
|
|
7763
|
+
* @param startAt - Pagination start index (default: 0)
|
|
7764
|
+
* @param maxResults - Max results per page (default: 50, max: 100)
|
|
7765
|
+
*/
|
|
7766
|
+
async listWebhooks(params = {}) {
|
|
7767
|
+
const { startAt = 0, maxResults = 50 } = params;
|
|
7768
|
+
const response = await this.request("GET", "/webhook", {
|
|
7769
|
+
query: { startAt, maxResults }
|
|
7770
|
+
});
|
|
7771
|
+
return formatWebhookList(response);
|
|
7772
|
+
}
|
|
7773
|
+
/**
|
|
7774
|
+
* Register a new webhook.
|
|
7775
|
+
*
|
|
7776
|
+
* @param url - The URL where Jira will POST webhook events
|
|
7777
|
+
* @param events - Events to subscribe to
|
|
7778
|
+
* @param jqlFilter - Optional JQL filter (only matching issues trigger events)
|
|
7779
|
+
* @returns The created webhook ID
|
|
7780
|
+
*/
|
|
7781
|
+
async registerWebhook(params) {
|
|
7782
|
+
const { url, events, jqlFilter } = params;
|
|
7783
|
+
const webhook = {
|
|
7784
|
+
// Jira webhook API requires jqlFilter but has limited operator support.
|
|
7785
|
+
// "IS NOT EMPTY" and empty strings are rejected. Use a universally-true expression.
|
|
7786
|
+
jqlFilter: jqlFilter || "project != null",
|
|
7787
|
+
events
|
|
7788
|
+
};
|
|
7789
|
+
const body = {
|
|
7790
|
+
url,
|
|
7791
|
+
webhooks: [webhook]
|
|
7792
|
+
};
|
|
7793
|
+
const response = await this.request("POST", "/webhook", {
|
|
7794
|
+
body
|
|
7795
|
+
});
|
|
7796
|
+
console.log("[JIRA-WEBHOOK-API] registerWebhook raw response:", JSON.stringify(response, null, 2));
|
|
7797
|
+
if (!response.webhookRegistrationResult || response.webhookRegistrationResult.length === 0) {
|
|
7798
|
+
throw new Error("Failed to register webhook: No registration result returned");
|
|
7799
|
+
}
|
|
7800
|
+
const result = response.webhookRegistrationResult[0];
|
|
7801
|
+
if (result.errors && result.errors.length > 0) {
|
|
7802
|
+
throw new Error(`Failed to register webhook: ${result.errors.join(", ")}`);
|
|
7803
|
+
}
|
|
7804
|
+
if (result.createdWebhookId === void 0 || result.createdWebhookId === null) {
|
|
7805
|
+
throw new Error(`Failed to register webhook: No webhook ID in response. Full result: ${JSON.stringify(result)}`);
|
|
7806
|
+
}
|
|
7807
|
+
return {
|
|
7808
|
+
webhookId: result.createdWebhookId
|
|
7809
|
+
};
|
|
7810
|
+
}
|
|
7811
|
+
/**
|
|
7812
|
+
* Refresh webhook expiration dates.
|
|
7813
|
+
*
|
|
7814
|
+
* Jira webhooks expire after 30 days. Call this to extend expiration.
|
|
7815
|
+
*
|
|
7816
|
+
* @param webhookIds - IDs of webhooks to refresh
|
|
7817
|
+
* @returns New expiration date
|
|
7818
|
+
*/
|
|
7819
|
+
async refreshWebhooks(params) {
|
|
7820
|
+
const { webhookIds } = params;
|
|
7821
|
+
const body = {
|
|
7822
|
+
webhookIds
|
|
7823
|
+
};
|
|
7824
|
+
const response = await this.request("PUT", "/webhook/refresh", {
|
|
7825
|
+
body
|
|
7826
|
+
});
|
|
7827
|
+
return {
|
|
7828
|
+
expirationDate: response.expirationDate
|
|
7829
|
+
};
|
|
7830
|
+
}
|
|
7831
|
+
/**
|
|
7832
|
+
* Delete webhooks by ID.
|
|
7833
|
+
*
|
|
7834
|
+
* @param webhookIds - IDs of webhooks to delete
|
|
7835
|
+
*/
|
|
7836
|
+
async deleteWebhooks(params) {
|
|
7837
|
+
const { webhookIds } = params;
|
|
7838
|
+
const body = {
|
|
7839
|
+
webhookIds
|
|
7840
|
+
};
|
|
7841
|
+
await this.request("DELETE", "/webhook", {
|
|
7842
|
+
body
|
|
7843
|
+
});
|
|
7844
|
+
}
|
|
7845
|
+
/**
|
|
7846
|
+
* Get a specific webhook by ID.
|
|
7847
|
+
*
|
|
7848
|
+
* Note: Jira API doesn't have a direct "get by ID" endpoint,
|
|
7849
|
+
* so we list and filter.
|
|
7850
|
+
*/
|
|
7851
|
+
async getWebhook(params) {
|
|
7852
|
+
const { webhookId } = params;
|
|
7853
|
+
const response = await this.request("GET", "/webhook", {
|
|
7854
|
+
query: { startAt: 0, maxResults: 100 }
|
|
7855
|
+
});
|
|
7856
|
+
const webhook = response.values.find((w) => w.id === webhookId);
|
|
7857
|
+
return webhook || null;
|
|
7858
|
+
}
|
|
7859
|
+
};
|
|
7860
|
+
|
|
7241
7861
|
// ../../b4m-core/packages/common/dist/src/jira/api.js
|
|
7242
7862
|
var JIRA_MAX_ATTACHMENT_SIZE = 20 * 1024 * 1024;
|
|
7243
7863
|
function isValidIssueKey(key) {
|
|
@@ -7989,8 +8609,71 @@ var JiraApi = class {
|
|
|
7989
8609
|
}
|
|
7990
8610
|
return this._agileApi;
|
|
7991
8611
|
}
|
|
8612
|
+
// ============================================================================
|
|
8613
|
+
// Webhook API Access (Webhook Management)
|
|
8614
|
+
// ============================================================================
|
|
8615
|
+
_webhookApi = null;
|
|
8616
|
+
/**
|
|
8617
|
+
* Get the Webhook API client for webhook management operations.
|
|
8618
|
+
* Lazily instantiated on first access.
|
|
8619
|
+
*/
|
|
8620
|
+
get webhook() {
|
|
8621
|
+
if (!this._webhookApi) {
|
|
8622
|
+
this._webhookApi = new WebhookApi(this.config);
|
|
8623
|
+
}
|
|
8624
|
+
return this._webhookApi;
|
|
8625
|
+
}
|
|
7992
8626
|
};
|
|
7993
8627
|
|
|
8628
|
+
// ../../b4m-core/packages/common/dist/src/jira/webhook/types.js
|
|
8629
|
+
function isIssueWebhookEvent(payload) {
|
|
8630
|
+
const event = payload.webhookEvent;
|
|
8631
|
+
if (typeof event !== "string" || !event.startsWith("jira:issue_"))
|
|
8632
|
+
return false;
|
|
8633
|
+
const issue = payload.issue;
|
|
8634
|
+
if (!issue || typeof issue.key !== "string")
|
|
8635
|
+
return false;
|
|
8636
|
+
const fields = issue.fields;
|
|
8637
|
+
if (!fields || typeof fields.summary !== "string")
|
|
8638
|
+
return false;
|
|
8639
|
+
const status = fields.status;
|
|
8640
|
+
const issuetype = fields.issuetype;
|
|
8641
|
+
const project = fields.project;
|
|
8642
|
+
if (!status?.name || !issuetype?.name || !project?.key)
|
|
8643
|
+
return false;
|
|
8644
|
+
return true;
|
|
8645
|
+
}
|
|
8646
|
+
function isCommentWebhookEvent(payload) {
|
|
8647
|
+
const event = payload.webhookEvent;
|
|
8648
|
+
if (typeof event !== "string" || !event.startsWith("comment_"))
|
|
8649
|
+
return false;
|
|
8650
|
+
const issue = payload.issue;
|
|
8651
|
+
if (!issue || typeof issue.key !== "string")
|
|
8652
|
+
return false;
|
|
8653
|
+
const comment = payload.comment;
|
|
8654
|
+
if (!comment || typeof comment.id !== "string")
|
|
8655
|
+
return false;
|
|
8656
|
+
const author = comment.author;
|
|
8657
|
+
if (!author || typeof author.displayName !== "string")
|
|
8658
|
+
return false;
|
|
8659
|
+
return true;
|
|
8660
|
+
}
|
|
8661
|
+
function isSprintWebhookEvent(payload) {
|
|
8662
|
+
const event = payload.webhookEvent;
|
|
8663
|
+
if (typeof event !== "string" || !event.startsWith("sprint_"))
|
|
8664
|
+
return false;
|
|
8665
|
+
const sprint = payload.sprint;
|
|
8666
|
+
if (!sprint || typeof sprint.name !== "string")
|
|
8667
|
+
return false;
|
|
8668
|
+
return true;
|
|
8669
|
+
}
|
|
8670
|
+
function extractWebhookEventType(payload) {
|
|
8671
|
+
const event = payload.webhookEvent;
|
|
8672
|
+
if (typeof event !== "string" || event.length === 0)
|
|
8673
|
+
return null;
|
|
8674
|
+
return event;
|
|
8675
|
+
}
|
|
8676
|
+
|
|
7994
8677
|
// ../../b4m-core/packages/common/dist/src/atlassian/config.js
|
|
7995
8678
|
function getErrorMessage(error) {
|
|
7996
8679
|
if (error instanceof Error) {
|
|
@@ -8683,7 +9366,11 @@ export {
|
|
|
8683
9366
|
isPlaceholderValue,
|
|
8684
9367
|
SecretAuditEvents,
|
|
8685
9368
|
WebhookDeliveryStatus,
|
|
9369
|
+
COMMON_JIRA_WEBHOOK_EVENTS,
|
|
9370
|
+
JiraWebhookDeliveryStatus,
|
|
8686
9371
|
SupportedFabFileMimeTypes,
|
|
9372
|
+
REASONING_EFFORT_LABELS,
|
|
9373
|
+
REASONING_EFFORT_DESCRIPTIONS,
|
|
8687
9374
|
CODE_FILE_MIME_TYPES,
|
|
8688
9375
|
DataSubscribeRequestAction,
|
|
8689
9376
|
DataUnsubscribeRequestAction,
|
|
@@ -8918,11 +9605,23 @@ export {
|
|
|
8918
9605
|
formatIssueLinkTypes,
|
|
8919
9606
|
formatIssueLinks,
|
|
8920
9607
|
AgileApi,
|
|
9608
|
+
formatWebhook,
|
|
9609
|
+
formatWebhookList,
|
|
9610
|
+
escapeSlackMrkdwn,
|
|
9611
|
+
formatIssueEventForSlack,
|
|
9612
|
+
formatCommentEventForSlack,
|
|
9613
|
+
formatSprintEventForSlack,
|
|
9614
|
+
formatGenericEventForSlack,
|
|
9615
|
+
WebhookApi,
|
|
8921
9616
|
JIRA_MAX_ATTACHMENT_SIZE,
|
|
8922
9617
|
isValidIssueKey,
|
|
8923
9618
|
wikiMarkupToAdf,
|
|
8924
9619
|
containsWikiTable,
|
|
8925
9620
|
JiraApi,
|
|
9621
|
+
isIssueWebhookEvent,
|
|
9622
|
+
isCommentWebhookEvent,
|
|
9623
|
+
isSprintWebhookEvent,
|
|
9624
|
+
extractWebhookEventType,
|
|
8926
9625
|
getErrorMessage,
|
|
8927
9626
|
getAtlassianConfig,
|
|
8928
9627
|
MCP_PROVIDER_METADATA,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
dayjsConfig_default,
|
|
16
16
|
extractSnippetMeta,
|
|
17
17
|
settingsMap
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TX3D6KIM.js";
|
|
19
19
|
import {
|
|
20
20
|
Logger
|
|
21
21
|
} from "./chunk-OCYRD7D6.js";
|
|
@@ -6567,10 +6567,18 @@ var OpenAIBackend = class {
|
|
|
6567
6567
|
stream: true,
|
|
6568
6568
|
...options.maxTokens && { max_completion_tokens: options.maxTokens }
|
|
6569
6569
|
});
|
|
6570
|
-
|
|
6570
|
+
let reasoningEffort;
|
|
6571
|
+
if (options.reasoningEffort) {
|
|
6572
|
+
reasoningEffort = options.reasoningEffort;
|
|
6573
|
+
this.logger.debug(`Using explicit reasoning effort: ${reasoningEffort}`);
|
|
6574
|
+
} else if (options.complexity && effortMap[options.complexity]) {
|
|
6575
|
+
reasoningEffort = isGPT5_1Model || isGPT5_2Model ? effortMap_GPT5_1_2[options.complexity] : effortMap[options.complexity];
|
|
6576
|
+
this.logger.debug(`Auto-classified reasoning effort from complexity '${options.complexity}': ${reasoningEffort}`);
|
|
6577
|
+
}
|
|
6578
|
+
if (reasoningEffort) {
|
|
6571
6579
|
Object.assign(parameters, {
|
|
6572
6580
|
reasoning: {
|
|
6573
|
-
effort:
|
|
6581
|
+
effort: reasoningEffort
|
|
6574
6582
|
}
|
|
6575
6583
|
});
|
|
6576
6584
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createFabFile,
|
|
4
4
|
createFabFileSchema
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-N7IZNCAL.js";
|
|
6
|
+
import "./chunk-ZBCO23NT.js";
|
|
7
|
+
import "./chunk-TX3D6KIM.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
createFabFile,
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getEffectiveApiKey,
|
|
6
6
|
getOpenWeatherKey,
|
|
7
7
|
getSerperKey
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5PMVJOAC.js";
|
|
9
9
|
import "./chunk-RUI6HNLO.js";
|
|
10
10
|
import {
|
|
11
11
|
ConfigStore,
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
selectActiveBackgroundAgents,
|
|
16
16
|
useCliStore
|
|
17
17
|
} from "./chunk-TVW4ZESU.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-NFJ434R6.js";
|
|
19
|
+
import "./chunk-N7IZNCAL.js";
|
|
20
20
|
import {
|
|
21
21
|
BFLImageService,
|
|
22
22
|
BaseStorage,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
OpenAIBackend,
|
|
29
29
|
OpenAIImageService,
|
|
30
30
|
XAIImageService
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ZBCO23NT.js";
|
|
32
32
|
import {
|
|
33
33
|
AiEvents,
|
|
34
34
|
ApiKeyEvents,
|
|
@@ -84,7 +84,7 @@ import {
|
|
|
84
84
|
XAI_IMAGE_MODELS,
|
|
85
85
|
b4mLLMTools,
|
|
86
86
|
getMcpProviderMetadata
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-TX3D6KIM.js";
|
|
88
88
|
import {
|
|
89
89
|
Logger
|
|
90
90
|
} from "./chunk-OCYRD7D6.js";
|
|
@@ -3964,6 +3964,7 @@ var updateUserSchema = z7.object({
|
|
|
3964
3964
|
preferredLanguage: z7.string().nullable().optional(),
|
|
3965
3965
|
preferredContact: z7.string().nullable().optional(),
|
|
3966
3966
|
preferredVoice: z7.string().nullable().optional(),
|
|
3967
|
+
preferredReasoningEffort: z7.enum(["auto", "none", "minimal", "low", "medium", "high", "xhigh"]).nullable().optional(),
|
|
3967
3968
|
tshirtSize: z7.string().nullable().optional(),
|
|
3968
3969
|
geoLocation: z7.string().nullable().optional(),
|
|
3969
3970
|
lastNotebookId: z7.string().nullable().optional(),
|
|
@@ -14635,7 +14636,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
|
|
|
14635
14636
|
// package.json
|
|
14636
14637
|
var package_default = {
|
|
14637
14638
|
name: "@bike4mind/cli",
|
|
14638
|
-
version: "0.2.
|
|
14639
|
+
version: "0.2.30-cj-GH6259.19188+f39a38b28",
|
|
14639
14640
|
type: "module",
|
|
14640
14641
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
14641
14642
|
license: "UNLICENSED",
|
|
@@ -14749,10 +14750,10 @@ var package_default = {
|
|
|
14749
14750
|
},
|
|
14750
14751
|
devDependencies: {
|
|
14751
14752
|
"@bike4mind/agents": "0.1.0",
|
|
14752
|
-
"@bike4mind/common": "2.51.
|
|
14753
|
-
"@bike4mind/mcp": "1.30.
|
|
14754
|
-
"@bike4mind/services": "2.49.
|
|
14755
|
-
"@bike4mind/utils": "2.6.
|
|
14753
|
+
"@bike4mind/common": "2.51.1-cj-GH6259.19188+f39a38b28",
|
|
14754
|
+
"@bike4mind/mcp": "1.30.1-cj-GH6259.19188+f39a38b28",
|
|
14755
|
+
"@bike4mind/services": "2.49.1-cj-GH6259.19188+f39a38b28",
|
|
14756
|
+
"@bike4mind/utils": "2.6.1-cj-GH6259.19188+f39a38b28",
|
|
14756
14757
|
"@types/better-sqlite3": "^7.6.13",
|
|
14757
14758
|
"@types/diff": "^5.0.9",
|
|
14758
14759
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -14770,7 +14771,7 @@ var package_default = {
|
|
|
14770
14771
|
optionalDependencies: {
|
|
14771
14772
|
"@vscode/ripgrep": "^1.17.0"
|
|
14772
14773
|
},
|
|
14773
|
-
gitHead: "
|
|
14774
|
+
gitHead: "f39a38b28fd36310af94f2b8fcb4904f351b4ec1"
|
|
14774
14775
|
};
|
|
14775
14776
|
|
|
14776
14777
|
// src/config/constants.ts
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
findMostSimilarMemento,
|
|
4
4
|
getRelevantMementos
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-5PMVJOAC.js";
|
|
6
|
+
import "./chunk-ZBCO23NT.js";
|
|
7
|
+
import "./chunk-TX3D6KIM.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
findMostSimilarMemento,
|
|
@@ -134,12 +134,12 @@ import {
|
|
|
134
134
|
validateMermaidSyntax,
|
|
135
135
|
warmUpSettingsCache,
|
|
136
136
|
withRetry
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-ZBCO23NT.js";
|
|
138
138
|
import {
|
|
139
139
|
buildRateLimitLogEntry,
|
|
140
140
|
isNearLimit,
|
|
141
141
|
parseRateLimitHeaders
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-TX3D6KIM.js";
|
|
143
143
|
import {
|
|
144
144
|
Logger,
|
|
145
145
|
NotificationDeduplicator,
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
CATEGORY_ICONS,
|
|
32
32
|
CHAT_MODELS,
|
|
33
33
|
CODE_FILE_MIME_TYPES,
|
|
34
|
+
COMMON_JIRA_WEBHOOK_EVENTS,
|
|
34
35
|
CONFLUENCE_MAX_ATTACHMENT_SIZE,
|
|
35
36
|
CREDIT_ADD_TRANSACTION_TYPES,
|
|
36
37
|
CREDIT_DEDUCT_TRANSACTION_TYPES,
|
|
@@ -121,6 +122,7 @@ import {
|
|
|
121
122
|
InvitesRefetchAction,
|
|
122
123
|
JIRA_MAX_ATTACHMENT_SIZE,
|
|
123
124
|
JiraApi,
|
|
125
|
+
JiraWebhookDeliveryStatus,
|
|
124
126
|
KnowledgeType,
|
|
125
127
|
LEGACY_IMAGE_MODEL_MAP,
|
|
126
128
|
LIVEOPS_TRIAGE_VALIDATION_LIMITS,
|
|
@@ -230,6 +232,8 @@ import {
|
|
|
230
232
|
QuestResourceSchema,
|
|
231
233
|
QuestSchema,
|
|
232
234
|
QuestStatusSchema,
|
|
235
|
+
REASONING_EFFORT_DESCRIPTIONS,
|
|
236
|
+
REASONING_EFFORT_LABELS,
|
|
233
237
|
RESTRICTION_OPERATIONS,
|
|
234
238
|
RESTRICTION_SUBJECT_TYPES,
|
|
235
239
|
RapidReplyFallbackBehaviors,
|
|
@@ -307,6 +311,7 @@ import {
|
|
|
307
311
|
VoyageAIEmbeddingModel,
|
|
308
312
|
WEBSITE_URL,
|
|
309
313
|
WHATS_NEW_VALIDATION_LIMITS,
|
|
314
|
+
WebhookApi,
|
|
310
315
|
WebhookDeliveryStatus,
|
|
311
316
|
WhatsNewConfigSchema,
|
|
312
317
|
WhatsNewSyncConfigSchema,
|
|
@@ -330,15 +335,20 @@ import {
|
|
|
330
335
|
detectMimeType,
|
|
331
336
|
detectResourceConflicts,
|
|
332
337
|
determineMimeType,
|
|
338
|
+
escapeSlackMrkdwn,
|
|
333
339
|
extractSnippetMeta,
|
|
340
|
+
extractWebhookEventType,
|
|
334
341
|
formatActivityMessage,
|
|
335
342
|
formatBoard,
|
|
336
343
|
formatBoardConfiguration,
|
|
337
344
|
formatBoardIssues,
|
|
338
345
|
formatBoardList,
|
|
339
346
|
formatComment,
|
|
347
|
+
formatCommentEventForSlack,
|
|
340
348
|
formatFileSize,
|
|
349
|
+
formatGenericEventForSlack,
|
|
341
350
|
formatIssueDetails,
|
|
351
|
+
formatIssueEventForSlack,
|
|
342
352
|
formatIssueLinkTypes,
|
|
343
353
|
formatIssueLinks,
|
|
344
354
|
formatIssueResponse,
|
|
@@ -347,6 +357,7 @@ import {
|
|
|
347
357
|
formatSSEError,
|
|
348
358
|
formatSearchResults,
|
|
349
359
|
formatSprint,
|
|
360
|
+
formatSprintEventForSlack,
|
|
350
361
|
formatSprintIssues,
|
|
351
362
|
formatSprintList,
|
|
352
363
|
formatTransitionResult,
|
|
@@ -354,6 +365,8 @@ import {
|
|
|
354
365
|
formatUser,
|
|
355
366
|
formatUserList,
|
|
356
367
|
formatWatchers,
|
|
368
|
+
formatWebhook,
|
|
369
|
+
formatWebhookList,
|
|
357
370
|
getAtlassianConfig,
|
|
358
371
|
getErrorMessage,
|
|
359
372
|
getFileTypeEmoji,
|
|
@@ -364,15 +377,18 @@ import {
|
|
|
364
377
|
getWebsiteUrl,
|
|
365
378
|
groupShareSchema,
|
|
366
379
|
isArtifact,
|
|
380
|
+
isCommentWebhookEvent,
|
|
367
381
|
isCreditHolder,
|
|
368
382
|
isDeletedArtifact,
|
|
369
383
|
isDraftArtifact,
|
|
384
|
+
isIssueWebhookEvent,
|
|
370
385
|
isModelDeprecated,
|
|
371
386
|
isNearLimit,
|
|
372
387
|
isPlaceholderValue,
|
|
373
388
|
isPredefinedTag,
|
|
374
389
|
isPublicArtifact,
|
|
375
390
|
isPublishedArtifact,
|
|
391
|
+
isSprintWebhookEvent,
|
|
376
392
|
isSupportedEmbeddingModel,
|
|
377
393
|
isValidEnumValue,
|
|
378
394
|
isValidIssueKey,
|
|
@@ -416,7 +432,7 @@ import {
|
|
|
416
432
|
validateReactArtifactV2,
|
|
417
433
|
validateSvgArtifactV2,
|
|
418
434
|
wikiMarkupToAdf
|
|
419
|
-
} from "./chunk-
|
|
435
|
+
} from "./chunk-TX3D6KIM.js";
|
|
420
436
|
export {
|
|
421
437
|
ALL_IMAGE_MODELS,
|
|
422
438
|
ALL_IMAGE_SIZES,
|
|
@@ -449,6 +465,7 @@ export {
|
|
|
449
465
|
CATEGORY_ICONS,
|
|
450
466
|
CHAT_MODELS,
|
|
451
467
|
CODE_FILE_MIME_TYPES,
|
|
468
|
+
COMMON_JIRA_WEBHOOK_EVENTS,
|
|
452
469
|
CONFLUENCE_MAX_ATTACHMENT_SIZE,
|
|
453
470
|
MIME_TYPE_MAP as CONFLUENCE_MIME_TYPE_MAP,
|
|
454
471
|
CREDIT_ADD_TRANSACTION_TYPES,
|
|
@@ -540,6 +557,7 @@ export {
|
|
|
540
557
|
InvitesRefetchAction,
|
|
541
558
|
JIRA_MAX_ATTACHMENT_SIZE,
|
|
542
559
|
JiraApi,
|
|
560
|
+
JiraWebhookDeliveryStatus,
|
|
543
561
|
KnowledgeType,
|
|
544
562
|
LEGACY_IMAGE_MODEL_MAP,
|
|
545
563
|
LIVEOPS_TRIAGE_VALIDATION_LIMITS,
|
|
@@ -649,6 +667,8 @@ export {
|
|
|
649
667
|
QuestResourceSchema,
|
|
650
668
|
QuestSchema,
|
|
651
669
|
QuestStatusSchema,
|
|
670
|
+
REASONING_EFFORT_DESCRIPTIONS,
|
|
671
|
+
REASONING_EFFORT_LABELS,
|
|
652
672
|
RESTRICTION_OPERATIONS,
|
|
653
673
|
RESTRICTION_SUBJECT_TYPES,
|
|
654
674
|
RapidReplyFallbackBehaviors,
|
|
@@ -726,6 +746,7 @@ export {
|
|
|
726
746
|
VoyageAIEmbeddingModel,
|
|
727
747
|
WEBSITE_URL,
|
|
728
748
|
WHATS_NEW_VALIDATION_LIMITS,
|
|
749
|
+
WebhookApi,
|
|
729
750
|
WebhookDeliveryStatus,
|
|
730
751
|
WhatsNewConfigSchema,
|
|
731
752
|
WhatsNewSyncConfigSchema,
|
|
@@ -750,15 +771,20 @@ export {
|
|
|
750
771
|
detectMimeType,
|
|
751
772
|
detectResourceConflicts,
|
|
752
773
|
determineMimeType,
|
|
774
|
+
escapeSlackMrkdwn,
|
|
753
775
|
extractSnippetMeta,
|
|
776
|
+
extractWebhookEventType,
|
|
754
777
|
formatActivityMessage,
|
|
755
778
|
formatBoard,
|
|
756
779
|
formatBoardConfiguration,
|
|
757
780
|
formatBoardIssues,
|
|
758
781
|
formatBoardList,
|
|
759
782
|
formatComment,
|
|
783
|
+
formatCommentEventForSlack,
|
|
760
784
|
formatFileSize,
|
|
785
|
+
formatGenericEventForSlack,
|
|
761
786
|
formatIssueDetails,
|
|
787
|
+
formatIssueEventForSlack,
|
|
762
788
|
formatIssueLinkTypes,
|
|
763
789
|
formatIssueLinks,
|
|
764
790
|
formatIssueResponse,
|
|
@@ -767,6 +793,7 @@ export {
|
|
|
767
793
|
formatSSEError,
|
|
768
794
|
formatSearchResults,
|
|
769
795
|
formatSprint,
|
|
796
|
+
formatSprintEventForSlack,
|
|
770
797
|
formatSprintIssues,
|
|
771
798
|
formatSprintList,
|
|
772
799
|
formatTransitionResult,
|
|
@@ -774,6 +801,8 @@ export {
|
|
|
774
801
|
formatUser,
|
|
775
802
|
formatUserList,
|
|
776
803
|
formatWatchers,
|
|
804
|
+
formatWebhook,
|
|
805
|
+
formatWebhookList,
|
|
777
806
|
getAtlassianConfig,
|
|
778
807
|
getErrorMessage,
|
|
779
808
|
getFileTypeEmoji,
|
|
@@ -784,15 +813,18 @@ export {
|
|
|
784
813
|
getWebsiteUrl,
|
|
785
814
|
groupShareSchema,
|
|
786
815
|
isArtifact,
|
|
816
|
+
isCommentWebhookEvent,
|
|
787
817
|
isCreditHolder,
|
|
788
818
|
isDeletedArtifact,
|
|
789
819
|
isDraftArtifact,
|
|
820
|
+
isIssueWebhookEvent,
|
|
790
821
|
isModelDeprecated,
|
|
791
822
|
isNearLimit,
|
|
792
823
|
isPlaceholderValue,
|
|
793
824
|
isPredefinedTag,
|
|
794
825
|
isPublicArtifact,
|
|
795
826
|
isPublishedArtifact,
|
|
827
|
+
isSprintWebhookEvent,
|
|
796
828
|
isSupportedEmbeddingModel,
|
|
797
829
|
isValidEnumValue,
|
|
798
830
|
isValidIssueKey,
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SubtractCreditsSchema,
|
|
4
4
|
subtractCredits
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-NFJ434R6.js";
|
|
6
|
+
import "./chunk-ZBCO23NT.js";
|
|
7
|
+
import "./chunk-TX3D6KIM.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
SubtractCreditsSchema,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bike4mind/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.30-cj-GH6259.19188+f39a38b28",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -114,10 +114,10 @@
|
|
|
114
114
|
},
|
|
115
115
|
"devDependencies": {
|
|
116
116
|
"@bike4mind/agents": "0.1.0",
|
|
117
|
-
"@bike4mind/common": "2.51.
|
|
118
|
-
"@bike4mind/mcp": "1.30.
|
|
119
|
-
"@bike4mind/services": "2.49.
|
|
120
|
-
"@bike4mind/utils": "2.6.
|
|
117
|
+
"@bike4mind/common": "2.51.1-cj-GH6259.19188+f39a38b28",
|
|
118
|
+
"@bike4mind/mcp": "1.30.1-cj-GH6259.19188+f39a38b28",
|
|
119
|
+
"@bike4mind/services": "2.49.1-cj-GH6259.19188+f39a38b28",
|
|
120
|
+
"@bike4mind/utils": "2.6.1-cj-GH6259.19188+f39a38b28",
|
|
121
121
|
"@types/better-sqlite3": "^7.6.13",
|
|
122
122
|
"@types/diff": "^5.0.9",
|
|
123
123
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -135,5 +135,5 @@
|
|
|
135
135
|
"optionalDependencies": {
|
|
136
136
|
"@vscode/ripgrep": "^1.17.0"
|
|
137
137
|
},
|
|
138
|
-
"gitHead": "
|
|
138
|
+
"gitHead": "f39a38b28fd36310af94f2b8fcb4904f351b4ec1"
|
|
139
139
|
}
|