@bike4mind/cli 0.2.11-ja-fix-confluence-table-data-5752.17351 → 0.2.11
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/ImageStore-RQZ7OF7P.js +0 -0
- package/dist/{artifactExtractor-R5CNTG7Z.js → artifactExtractor-F2VLARCK.js} +1 -1
- package/dist/chunk-AMDXHL6S.js +0 -0
- package/dist/chunk-BDQBOLYG.js +0 -0
- package/dist/chunk-BPFEGDC7.js +0 -0
- package/dist/{chunk-PUL75ZDO.js → chunk-BU5TP3BH.js} +84 -36
- package/dist/{chunk-2OWNLDU2.js → chunk-ID4NS6KF.js} +2 -2
- package/dist/{chunk-ZJUZR27P.js → chunk-OHR7UCTC.js} +110 -8
- package/dist/chunk-PDX44BCA.js +0 -0
- package/dist/{chunk-AHDZ7ASB.js → chunk-RJFNIMVH.js} +2 -2
- package/dist/{chunk-F6ZKDGCA.js → chunk-ZHCX7BLB.js} +2 -2
- package/dist/{create-SLA4GUS6.js → create-MXBWYABO.js} +3 -3
- package/dist/formatConverter-I7EIUVDY.js +0 -0
- package/dist/index.js +12 -13
- package/dist/{llmMarkdownGenerator-DPCCAKQM.js → llmMarkdownGenerator-AVPOXVE5.js} +1 -1
- package/dist/{markdownGenerator-UNYCUG5Q.js → markdownGenerator-FBXMTP3B.js} +1 -1
- package/dist/{mementoService-W6PMNYXL.js → mementoService-4WLVEWPZ.js} +3 -3
- package/dist/notificationDeduplicator-UW7D75QS.js +0 -0
- package/dist/{src-RRIUAZP6.js → src-SYE7WXBJ.js} +1 -1
- package/dist/{src-SF4Q2U4W.js → src-YU4VN5YG.js} +2 -2
- package/dist/{subtractCredits-2ABV5YFW.js → subtractCredits-FGISXF2D.js} +3 -3
- package/dist/utils-JPMDGUBL.js +0 -0
- package/package.json +16 -18
|
File without changes
|
package/dist/chunk-AMDXHL6S.js
CHANGED
|
File without changes
|
package/dist/chunk-BDQBOLYG.js
CHANGED
|
File without changes
|
package/dist/chunk-BPFEGDC7.js
CHANGED
|
File without changes
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
dayjsConfig_default,
|
|
17
17
|
extractSnippetMeta,
|
|
18
18
|
settingsMap
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OHR7UCTC.js";
|
|
20
20
|
|
|
21
21
|
// ../../b4m-core/packages/utils/dist/src/storage/S3Storage.js
|
|
22
22
|
import { S3Client, PutObjectCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand } from "@aws-sdk/client-s3";
|
|
@@ -6267,6 +6267,8 @@ var ensureToolPairingIntegrity = (messages, logger) => {
|
|
|
6267
6267
|
return messages;
|
|
6268
6268
|
}
|
|
6269
6269
|
const toolUseIds = /* @__PURE__ */ new Set();
|
|
6270
|
+
const toolResultIds = /* @__PURE__ */ new Set();
|
|
6271
|
+
let hasToolUseBlocks = false;
|
|
6270
6272
|
let hasToolResultBlocks = false;
|
|
6271
6273
|
for (let i = 0; i < messages.length; i++) {
|
|
6272
6274
|
const message = messages[i];
|
|
@@ -6276,65 +6278,111 @@ var ensureToolPairingIntegrity = (messages, logger) => {
|
|
|
6276
6278
|
const block = content[j];
|
|
6277
6279
|
if (block.type === "tool_use" && "id" in block) {
|
|
6278
6280
|
toolUseIds.add(block.id);
|
|
6281
|
+
hasToolUseBlocks = true;
|
|
6279
6282
|
}
|
|
6280
6283
|
}
|
|
6281
6284
|
} else if (message.role === "user" && Array.isArray(message.content)) {
|
|
6282
6285
|
const content = message.content;
|
|
6283
6286
|
for (let j = 0; j < content.length; j++) {
|
|
6284
|
-
|
|
6287
|
+
const block = content[j];
|
|
6288
|
+
if (block.type === "tool_result" && "tool_use_id" in block) {
|
|
6289
|
+
toolResultIds.add(block.tool_use_id);
|
|
6285
6290
|
hasToolResultBlocks = true;
|
|
6286
|
-
break;
|
|
6287
6291
|
}
|
|
6288
6292
|
}
|
|
6289
6293
|
}
|
|
6290
6294
|
}
|
|
6291
|
-
if (!hasToolResultBlocks) {
|
|
6295
|
+
if (!hasToolUseBlocks && !hasToolResultBlocks) {
|
|
6292
6296
|
return messages;
|
|
6293
6297
|
}
|
|
6294
|
-
let
|
|
6298
|
+
let orphanedToolResultCount = 0;
|
|
6299
|
+
let orphanedToolUseCount = 0;
|
|
6295
6300
|
const result = [];
|
|
6296
6301
|
for (let i = 0; i < messages.length; i++) {
|
|
6297
6302
|
const message = messages[i];
|
|
6298
|
-
if (message.role
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
hasOrphans = true;
|
|
6309
|
-
break;
|
|
6303
|
+
if (message.role === "assistant" && Array.isArray(message.content)) {
|
|
6304
|
+
const content = message.content;
|
|
6305
|
+
let hasOrphanedToolUse = false;
|
|
6306
|
+
for (let j = 0; j < content.length; j++) {
|
|
6307
|
+
const block = content[j];
|
|
6308
|
+
if (block.type === "tool_use" && "id" in block) {
|
|
6309
|
+
if (!toolResultIds.has(block.id)) {
|
|
6310
|
+
hasOrphanedToolUse = true;
|
|
6311
|
+
break;
|
|
6312
|
+
}
|
|
6310
6313
|
}
|
|
6311
6314
|
}
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
+
if (!hasOrphanedToolUse) {
|
|
6316
|
+
result.push(message);
|
|
6317
|
+
continue;
|
|
6318
|
+
}
|
|
6319
|
+
const filteredContent = [];
|
|
6320
|
+
for (let j = 0; j < content.length; j++) {
|
|
6321
|
+
const block = content[j];
|
|
6322
|
+
if (block.type === "tool_use" && "id" in block) {
|
|
6323
|
+
const toolId = block.id;
|
|
6324
|
+
if (!toolResultIds.has(toolId)) {
|
|
6325
|
+
orphanedToolUseCount++;
|
|
6326
|
+
if (logger) {
|
|
6327
|
+
logger.warn(`Removing orphaned tool_use block with id: ${toolId} (no matching tool_result)`);
|
|
6328
|
+
}
|
|
6329
|
+
continue;
|
|
6330
|
+
}
|
|
6331
|
+
}
|
|
6332
|
+
filteredContent.push(block);
|
|
6333
|
+
}
|
|
6334
|
+
if (filteredContent.length > 0) {
|
|
6335
|
+
result.push({ ...message, content: filteredContent });
|
|
6336
|
+
}
|
|
6315
6337
|
continue;
|
|
6316
6338
|
}
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
const
|
|
6322
|
-
if (
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6339
|
+
if (message.role === "user" && Array.isArray(message.content)) {
|
|
6340
|
+
const content = message.content;
|
|
6341
|
+
let hasOrphanedToolResult = false;
|
|
6342
|
+
for (let j = 0; j < content.length; j++) {
|
|
6343
|
+
const block = content[j];
|
|
6344
|
+
if (block.type === "tool_result" && "tool_use_id" in block) {
|
|
6345
|
+
if (!toolUseIds.has(block.tool_use_id)) {
|
|
6346
|
+
hasOrphanedToolResult = true;
|
|
6347
|
+
break;
|
|
6326
6348
|
}
|
|
6327
|
-
continue;
|
|
6328
6349
|
}
|
|
6329
6350
|
}
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6351
|
+
if (!hasOrphanedToolResult) {
|
|
6352
|
+
result.push(message);
|
|
6353
|
+
continue;
|
|
6354
|
+
}
|
|
6355
|
+
const filteredContent = [];
|
|
6356
|
+
for (let j = 0; j < content.length; j++) {
|
|
6357
|
+
const block = content[j];
|
|
6358
|
+
if (block.type === "tool_result" && "tool_use_id" in block) {
|
|
6359
|
+
const toolUseId = block.tool_use_id;
|
|
6360
|
+
if (!toolUseIds.has(toolUseId)) {
|
|
6361
|
+
orphanedToolResultCount++;
|
|
6362
|
+
if (logger) {
|
|
6363
|
+
logger.warn(`Removing orphaned tool_result block referencing missing tool_use_id: ${toolUseId}`);
|
|
6364
|
+
}
|
|
6365
|
+
continue;
|
|
6366
|
+
}
|
|
6367
|
+
}
|
|
6368
|
+
filteredContent.push(block);
|
|
6369
|
+
}
|
|
6370
|
+
if (filteredContent.length > 0) {
|
|
6371
|
+
result.push({ ...message, content: filteredContent });
|
|
6372
|
+
}
|
|
6373
|
+
continue;
|
|
6334
6374
|
}
|
|
6375
|
+
result.push(message);
|
|
6335
6376
|
}
|
|
6336
|
-
if (
|
|
6337
|
-
|
|
6377
|
+
if ((orphanedToolResultCount > 0 || orphanedToolUseCount > 0) && logger) {
|
|
6378
|
+
const parts = [];
|
|
6379
|
+
if (orphanedToolResultCount > 0) {
|
|
6380
|
+
parts.push(`${orphanedToolResultCount} orphaned tool_result block(s)`);
|
|
6381
|
+
}
|
|
6382
|
+
if (orphanedToolUseCount > 0) {
|
|
6383
|
+
parts.push(`${orphanedToolUseCount} orphaned tool_use block(s)`);
|
|
6384
|
+
}
|
|
6385
|
+
logger.log(`Tool pairing integrity: removed ${parts.join(" and ")} after truncation`);
|
|
6338
6386
|
}
|
|
6339
6387
|
return result;
|
|
6340
6388
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BadRequestError,
|
|
4
4
|
secureParameters
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BU5TP3BH.js";
|
|
6
6
|
import {
|
|
7
7
|
GenericCreditDeductTransaction,
|
|
8
8
|
ImageEditUsageTransaction,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
RealtimeVoiceUsageTransaction,
|
|
11
11
|
TextGenerationUsageTransaction,
|
|
12
12
|
TransferCreditTransaction
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OHR7UCTC.js";
|
|
14
14
|
|
|
15
15
|
// ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
|
|
16
16
|
import { z } from "zod";
|
|
@@ -4048,6 +4048,13 @@ var SlackEvents;
|
|
|
4048
4048
|
SlackEvents2["SLACK_COMMAND_COMPLETED"] = "Slack Command Completed";
|
|
4049
4049
|
SlackEvents2["SLACK_MCP_TOOL_INVOKED"] = "Slack MCP Tool Invoked";
|
|
4050
4050
|
SlackEvents2["SLACK_BULK_OPERATION"] = "Slack Bulk Operation Executed";
|
|
4051
|
+
SlackEvents2["COMMAND_PROCESSED"] = "Slack Command Processed";
|
|
4052
|
+
SlackEvents2["COMMAND_FAILED"] = "Slack Command Failed";
|
|
4053
|
+
SlackEvents2["APP_CREATED"] = "Slack App Created";
|
|
4054
|
+
SlackEvents2["WORKSPACE_DEACTIVATED"] = "Slack Workspace Deactivated";
|
|
4055
|
+
SlackEvents2["CHANNEL_EXPORT_STARTED"] = "Slack Channel Export Started";
|
|
4056
|
+
SlackEvents2["CHANNEL_EXPORT_COMPLETED"] = "Slack Channel Export Completed";
|
|
4057
|
+
SlackEvents2["CHANNEL_EXPORT_FAILED"] = "Slack Channel Export Failed";
|
|
4051
4058
|
})(SlackEvents || (SlackEvents = {}));
|
|
4052
4059
|
|
|
4053
4060
|
// ../../b4m-core/packages/common/dist/src/schemas/team.js
|
|
@@ -5455,6 +5462,95 @@ var JiraApi = class {
|
|
|
5455
5462
|
errors: formattedErrors
|
|
5456
5463
|
};
|
|
5457
5464
|
}
|
|
5465
|
+
/**
|
|
5466
|
+
* Bulk transition multiple issues to new statuses in a single API call.
|
|
5467
|
+
* Uses the Jira Cloud Bulk Transition API.
|
|
5468
|
+
* Supports up to 1000 issues per request.
|
|
5469
|
+
*
|
|
5470
|
+
* Note: This is an async operation - returns a task ID for tracking progress.
|
|
5471
|
+
*/
|
|
5472
|
+
async bulkTransitionIssues(params) {
|
|
5473
|
+
const { issues } = params;
|
|
5474
|
+
console.error(`[Jira] bulkTransitionIssues called with ${issues.length} issue(s)`);
|
|
5475
|
+
if (issues.length === 0) {
|
|
5476
|
+
console.error("[Jira] bulkTransitionIssues: No issues provided, returning early");
|
|
5477
|
+
return { taskId: "", message: "No issues to transition", issueCount: 0 };
|
|
5478
|
+
}
|
|
5479
|
+
if (issues.length > 1e3) {
|
|
5480
|
+
console.error(`[Jira] bulkTransitionIssues: Exceeded 1000 issue limit (${issues.length})`);
|
|
5481
|
+
throw new Error("Bulk transition is limited to 1000 issues per request. Please split your request.");
|
|
5482
|
+
}
|
|
5483
|
+
const transitionGroups = {};
|
|
5484
|
+
for (const issue of issues) {
|
|
5485
|
+
if (!transitionGroups[issue.transitionId]) {
|
|
5486
|
+
transitionGroups[issue.transitionId] = [];
|
|
5487
|
+
}
|
|
5488
|
+
transitionGroups[issue.transitionId].push(issue.issueIdOrKey);
|
|
5489
|
+
}
|
|
5490
|
+
const bulkTransitionInputs = Object.entries(transitionGroups).map(([transitionId, selectedIssueIdsOrKeys]) => ({
|
|
5491
|
+
selectedIssueIdsOrKeys,
|
|
5492
|
+
transitionId
|
|
5493
|
+
}));
|
|
5494
|
+
console.error(`[Jira] bulkTransitionIssues: Grouped into ${bulkTransitionInputs.length} transition group(s)`);
|
|
5495
|
+
const result = await this.request("POST", "/bulk/issues/transition", {
|
|
5496
|
+
body: { bulkTransitionInputs }
|
|
5497
|
+
});
|
|
5498
|
+
console.error(`[Jira] bulkTransitionIssues: Task created with ID ${result.taskId}`);
|
|
5499
|
+
return {
|
|
5500
|
+
taskId: result.taskId,
|
|
5501
|
+
message: `Bulk transition started for ${issues.length} issue(s).`,
|
|
5502
|
+
issueCount: issues.length
|
|
5503
|
+
};
|
|
5504
|
+
}
|
|
5505
|
+
/**
|
|
5506
|
+
* Bulk update labels on multiple issues in a single API call.
|
|
5507
|
+
* Uses the Jira Cloud Bulk Edit API.
|
|
5508
|
+
* Supports up to 1000 issues per request.
|
|
5509
|
+
*
|
|
5510
|
+
* Note: This is an async operation - returns a task ID for tracking progress.
|
|
5511
|
+
*
|
|
5512
|
+
* Why only labels? Jira's Bulk Edit API has significant limitations:
|
|
5513
|
+
* - Summary, description, assignee fields are NOT supported for bulk editing
|
|
5514
|
+
* - Priority and issueType require IDs and have inconsistent behavior
|
|
5515
|
+
* - Labels is the most reliable and commonly used bulk operation
|
|
5516
|
+
* See: https://community.atlassian.com/forums/Jira-questions/Bulk-Change-Description-Field/qaq-p/897762
|
|
5517
|
+
*/
|
|
5518
|
+
async bulkUpdateIssues(params) {
|
|
5519
|
+
const { issueIdsOrKeys, labels } = params;
|
|
5520
|
+
console.error(`[Jira] bulkUpdateIssues called with ${issueIdsOrKeys.length} issue(s), action: ${labels.action}`);
|
|
5521
|
+
if (issueIdsOrKeys.length === 0) {
|
|
5522
|
+
console.error("[Jira] bulkUpdateIssues: No issues provided, returning early");
|
|
5523
|
+
return { taskId: "", message: "No issues to update", issueCount: 0 };
|
|
5524
|
+
}
|
|
5525
|
+
if (issueIdsOrKeys.length > 1e3) {
|
|
5526
|
+
console.error(`[Jira] bulkUpdateIssues: Exceeded 1000 issue limit (${issueIdsOrKeys.length})`);
|
|
5527
|
+
throw new Error("Bulk update is limited to 1000 issues per request. Please split your request.");
|
|
5528
|
+
}
|
|
5529
|
+
const selectedActions = ["labels"];
|
|
5530
|
+
const editedFieldsInput = {
|
|
5531
|
+
labelsFields: [
|
|
5532
|
+
{
|
|
5533
|
+
fieldId: "labels",
|
|
5534
|
+
labels: labels.values.map((name) => ({ name })),
|
|
5535
|
+
bulkEditMultiSelectFieldOption: labels.action
|
|
5536
|
+
}
|
|
5537
|
+
]
|
|
5538
|
+
};
|
|
5539
|
+
console.error(`[Jira] bulkUpdateIssues: Updating labels [${labels.values.join(", ")}] with action ${labels.action}`);
|
|
5540
|
+
const result = await this.request("POST", "/bulk/issues/fields", {
|
|
5541
|
+
body: {
|
|
5542
|
+
selectedActions,
|
|
5543
|
+
selectedIssueIdsOrKeys: issueIdsOrKeys,
|
|
5544
|
+
editedFieldsInput
|
|
5545
|
+
}
|
|
5546
|
+
});
|
|
5547
|
+
console.error(`[Jira] bulkUpdateIssues: Task created with ID ${result.taskId}`);
|
|
5548
|
+
return {
|
|
5549
|
+
taskId: result.taskId,
|
|
5550
|
+
message: `Bulk label update started for ${issueIdsOrKeys.length} issue(s). Action: ${labels.action}.`,
|
|
5551
|
+
issueCount: issueIdsOrKeys.length
|
|
5552
|
+
};
|
|
5553
|
+
}
|
|
5458
5554
|
};
|
|
5459
5555
|
|
|
5460
5556
|
// ../../b4m-core/packages/common/dist/src/atlassian/config.js
|
|
@@ -5532,10 +5628,10 @@ var atlassianDescriptions = {
|
|
|
5532
5628
|
confluence_list_pages: "List all pages in a Confluence space. Use usePersonalSpace: true to automatically list pages from your personal space, provide a specific spaceId, or omit both to list pages from all accessible spaces.",
|
|
5533
5629
|
confluence_delete_page: "\u26A0\uFE0F DESTRUCTIVE PREVIEW-FIRST TOOL: ALWAYS call TWICE. First call: MUST use confirmed=false (or omit) to show preview. Second call: Use confirmed=true ONLY after user explicitly confirms. PERMANENTLY deletes a Confluence page. Cannot be undone.",
|
|
5534
5630
|
// Jira tools
|
|
5535
|
-
jira_get_issue: "Retrieve a Jira issue by key (e.g., PROJ-123). Returns issue details including summary, description, status, assignee, and custom fields.",
|
|
5536
|
-
jira_create_issue: "Create a new Jira issue. Requires project key, summary, issue type name. Optionally set description, priority, assignee, labels, and parent (for subtasks).",
|
|
5537
|
-
jira_update_issue: "Update an existing Jira issue. Can update summary, description, priority, labels, and other fields.",
|
|
5538
|
-
jira_search_issues: "Search for Jira issues using JQL (Jira Query Language). Returns matching issues with full details.",
|
|
5631
|
+
jira_get_issue: "[JIRA ONLY] Retrieve a Jira issue by key (e.g., PROJ-123, not #1). DO NOT use for GitHub issues - if user mentions owner/repo format, use GitHub tools instead. Returns issue details including summary, description, status, assignee, and custom fields.",
|
|
5632
|
+
jira_create_issue: "[JIRA ONLY] Create a new Jira issue. DO NOT use for GitHub repositories in owner/repo format. Requires project key, summary, issue type name. Optionally set description, priority, assignee, labels, and parent (for subtasks).",
|
|
5633
|
+
jira_update_issue: "[JIRA ONLY] Update an existing Jira issue. DO NOT use for GitHub issues or repositories in owner/repo format - use update_issue or update_project_item_fields instead. Can update summary, description, priority, labels, and other fields.",
|
|
5634
|
+
jira_search_issues: "[JIRA ONLY] Search for Jira issues using JQL (Jira Query Language). DO NOT use when user mentions GitHub repositories in owner/repo format. Returns matching issues with full details.",
|
|
5539
5635
|
jira_list_projects: "List all accessible Jira projects. Returns project keys, names, and details. Use this to discover project keys when creating or updating issues.",
|
|
5540
5636
|
jira_get_project: "Get detailed information about a specific Jira project.",
|
|
5541
5637
|
jira_list_issue_types: "List available issue types for a project (e.g., Task, Epic, Subtask). Use this to discover available issue type names, especially for projects with custom issue types.",
|
|
@@ -5552,10 +5648,10 @@ var MCP_PROVIDER_METADATA = {
|
|
|
5552
5648
|
github: {
|
|
5553
5649
|
defaultToolDescriptions: {
|
|
5554
5650
|
// Core GitHub tools (must match b4m-core/packages/mcp/src/github/index.ts)
|
|
5555
|
-
create_issue: "Create a new issue in a GitHub repository. Requires repository owner, repository name, issue title, and optional body, labels, and assignees.",
|
|
5556
|
-
update_issue: "Update an existing GitHub issue. Can modify title, body, state (open/closed), labels, assignees, and issue type
|
|
5557
|
-
list_issues:
|
|
5558
|
-
get_issue: "Get detailed information about a specific GitHub issue by number. Returns full issue details including body, comments count, milestone, and
|
|
5651
|
+
create_issue: "[GITHUB ONLY] Create a new issue in a GitHub repository. Use when user mentions owner/repo format. DO NOT use jira_create_issue for GitHub repos. Requires repository owner, repository name, issue title, and optional body, labels, and assignees.",
|
|
5652
|
+
update_issue: "[GITHUB ONLY] Update an existing GitHub issue in owner/repo format. DO NOT use jira_update_issue for GitHub - jira_update_issue is ONLY for Jira issues with keys like PROJ-123. Can modify title, body, state (open/closed), labels, assignees, and issue type. Use list_org_issue_types to see available types. Requires repository owner, repository name, and issue number. IMPORTANT: DO NOT use this tool to update GitHub Projects v2 fields like Priority, Size, Iteration, Estimate, Start Date, Target Date, or Status - those are PROJECT FIELDS and require update_project_item_fields instead. This tool is ONLY for standard issue properties (title, body, state, labels, assignees).",
|
|
5653
|
+
list_issues: "[GITHUB ONLY] List issues for a GitHub repository in owner/repo format. DO NOT use jira_search_issues for GitHub. Can filter by state, labels, assignee, type. Returns issue details including title, body, status, and metadata.",
|
|
5654
|
+
get_issue: "[GITHUB ONLY] Get detailed information about a specific GitHub issue by number. Use when user mentions owner/repo and issue #1. DO NOT use jira_get_issue. Returns full issue details including body, comments count, milestone, timestamps, node_id (for Projects v2), and associated GitHub Projects.",
|
|
5559
5655
|
search_code: "Search for code across GitHub repositories using GitHub code search syntax. Returns matching code snippets with file paths, line numbers, and repository information.",
|
|
5560
5656
|
// Repository discovery and management
|
|
5561
5657
|
list_repositories: "List all GitHub repositories accessible to the authenticated user. Supports filtering by visibility (public/private) and affiliation (owner/collaborator/organization_member). Returns repository metadata including name, description, language, stars, and activity.",
|
|
@@ -5569,6 +5665,12 @@ var MCP_PROVIDER_METADATA = {
|
|
|
5569
5665
|
list_commits: "List commit history for a GitHub repository with optional filters (branch, file path, author). Returns commit SHA, message, author, date, and statistics.",
|
|
5570
5666
|
get_commit: "Get detailed information about a specific commit including full message, author, committer, file changes, and diff statistics.",
|
|
5571
5667
|
list_org_issue_types: "List available native GitHub issue types for an organization (Bug, Feature, Task, etc.). Use this to discover what issue types can be set on issues in the organization.",
|
|
5668
|
+
// GitHub Projects v2 tools
|
|
5669
|
+
list_org_projects: "List all GitHub Projects (v2) for an organization. Returns project IDs, titles, descriptions, and URLs. Use this to discover available projects before managing project fields.",
|
|
5670
|
+
list_project_fields: "List all fields for a GitHub Project (Status, Priority, Size, Iteration, etc.). Returns field IDs, data types, and available options (for single-select fields). Required to get field IDs and option IDs before updating project item fields.",
|
|
5671
|
+
get_project_item: "Get a GitHub issue as a project item. CRITICAL: This returns the item_id (starts with PVTI_) that you MUST use for update_project_item_fields - DO NOT use the issue node_id (starts with I_) from get_issue. WORKFLOW: Always call this BEFORE update_project_item_fields to get the correct item_id. If this tool returns an error (issue not in project), you must call add_issue_to_project first. Returns current field values and the item_id (PVTI_) needed for updates.",
|
|
5672
|
+
add_issue_to_project: '\u26A0\uFE0F PREVIEW-FIRST TOOL: Add a GitHub issue to a project. CRITICAL: Call this when get_project_item fails (issue not in project yet). After adding, call get_project_item to get the item_id (PVTI_) before updating fields. Use get_issue to get the issue node_id first. IMPORTANT: Always include display parameters for human-readable preview: display_project_name (from list_org_projects), display_issue_title (from get_issue like "#2 - Login issue"), and display_repository (from get_issue like "owner/repo"). Returns the new project item ID.',
|
|
5673
|
+
update_project_item_fields: '\u26A0\uFE0F PREVIEW-FIRST TOOL: ALWAYS call TWICE. Update one or more fields on a GitHub Project item (Priority, Size, Iteration, Estimate, Start Date, Target Date, Status). USE THIS TOOL when user asks to update Priority, Size, Iteration, Estimate, Start Date, Target Date, or Status on an issue that belongs to a GitHub Project - these are PROJECT FIELDS, not issue labels or properties. Supports both single field updates and batch updates. WORKFLOW: (1) Call get_project_item to get the item_id (starts with PVTI_) - if this fails, the issue is not in the project yet, so call add_issue_to_project first. (2) Call list_project_fields to get field IDs. (3) Call update_project_item_fields with the PVTI_ item_id. CRITICAL: The item_id parameter MUST be a ProjectV2Item ID (starts with PVTI_) from get_project_item, NOT the issue node_id (starts with I_) from get_issue. Using the wrong ID will cause all updates to fail. For each field in updates array, provide: field_id, value (actual ID/number/date), field_name (human name), new_value (human-readable for preview). Example: {item_id: "PVTI_lADO...", updates: [{field_id: "PVTF_...", value: "option_id", field_name: "Priority", new_value: "P1"}]}',
|
|
5572
5674
|
// Legacy tool names (for backwards compatibility)
|
|
5573
5675
|
github_list_repositories: "List GitHub repositories accessible to the connected account.",
|
|
5574
5676
|
github_get_repository: "Fetch detailed information about a specific GitHub repository.",
|
package/dist/chunk-PDX44BCA.js
CHANGED
|
File without changes
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
getSettingsMap,
|
|
8
8
|
getSettingsValue,
|
|
9
9
|
secureParameters
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BU5TP3BH.js";
|
|
11
11
|
import {
|
|
12
12
|
KnowledgeType,
|
|
13
13
|
SupportedFabFileMimeTypes
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OHR7UCTC.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/fabFileService/create.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
getSettingsByNames,
|
|
7
7
|
obfuscateApiKey,
|
|
8
8
|
secureParameters
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BU5TP3BH.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiKeyType,
|
|
12
12
|
MementoTier,
|
|
13
13
|
isSupportedEmbeddingModel
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OHR7UCTC.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createFabFile,
|
|
4
4
|
createFabFileSchema
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-RJFNIMVH.js";
|
|
6
|
+
import "./chunk-BU5TP3BH.js";
|
|
7
7
|
import "./chunk-AMDXHL6S.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OHR7UCTC.js";
|
|
9
9
|
import "./chunk-PDX44BCA.js";
|
|
10
10
|
export {
|
|
11
11
|
createFabFile,
|
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
getEffectiveApiKey,
|
|
5
5
|
getOpenWeatherKey,
|
|
6
6
|
getSerperKey
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ZHCX7BLB.js";
|
|
8
|
+
import "./chunk-ID4NS6KF.js";
|
|
9
|
+
import "./chunk-RJFNIMVH.js";
|
|
10
10
|
import {
|
|
11
11
|
BFLImageService,
|
|
12
12
|
BaseStorage,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
OpenAIBackend,
|
|
16
16
|
OpenAIImageService,
|
|
17
17
|
XAIImageService
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BU5TP3BH.js";
|
|
19
19
|
import {
|
|
20
20
|
Logger
|
|
21
21
|
} from "./chunk-AMDXHL6S.js";
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
XAI_IMAGE_MODELS,
|
|
74
74
|
b4mLLMTools,
|
|
75
75
|
getMcpProviderMetadata
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-OHR7UCTC.js";
|
|
77
77
|
import {
|
|
78
78
|
__require
|
|
79
79
|
} from "./chunk-PDX44BCA.js";
|
|
@@ -11658,7 +11658,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
|
|
|
11658
11658
|
// package.json
|
|
11659
11659
|
var package_default = {
|
|
11660
11660
|
name: "@bike4mind/cli",
|
|
11661
|
-
version: "0.2.11
|
|
11661
|
+
version: "0.2.11",
|
|
11662
11662
|
type: "module",
|
|
11663
11663
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
11664
11664
|
license: "UNLICENSED",
|
|
@@ -11761,11 +11761,11 @@ var package_default = {
|
|
|
11761
11761
|
zustand: "^4.5.4"
|
|
11762
11762
|
},
|
|
11763
11763
|
devDependencies: {
|
|
11764
|
-
"@bike4mind/agents": "
|
|
11765
|
-
"@bike4mind/common": "
|
|
11766
|
-
"@bike4mind/mcp": "
|
|
11767
|
-
"@bike4mind/services": "
|
|
11768
|
-
"@bike4mind/utils": "
|
|
11764
|
+
"@bike4mind/agents": "workspace:*",
|
|
11765
|
+
"@bike4mind/common": "workspace:*",
|
|
11766
|
+
"@bike4mind/mcp": "workspace:*",
|
|
11767
|
+
"@bike4mind/services": "workspace:*",
|
|
11768
|
+
"@bike4mind/utils": "workspace:*",
|
|
11769
11769
|
"@types/better-sqlite3": "^7.6.13",
|
|
11770
11770
|
"@types/diff": "^5.0.9",
|
|
11771
11771
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -11777,8 +11777,7 @@ var package_default = {
|
|
|
11777
11777
|
tsx: "^4.21.0",
|
|
11778
11778
|
typescript: "^5.9.3",
|
|
11779
11779
|
vitest: "^3.2.4"
|
|
11780
|
-
}
|
|
11781
|
-
gitHead: "d0f7a31b8292d28c6d873bf34f9119e6fa48d8b0"
|
|
11780
|
+
}
|
|
11782
11781
|
};
|
|
11783
11782
|
|
|
11784
11783
|
// src/config/constants.ts
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
findMostSimilarMemento,
|
|
4
4
|
getRelevantMementos
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-ZHCX7BLB.js";
|
|
6
|
+
import "./chunk-BU5TP3BH.js";
|
|
7
7
|
import "./chunk-AMDXHL6S.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OHR7UCTC.js";
|
|
9
9
|
import "./chunk-PDX44BCA.js";
|
|
10
10
|
export {
|
|
11
11
|
findMostSimilarMemento,
|
|
File without changes
|
|
@@ -120,7 +120,7 @@ import {
|
|
|
120
120
|
validateMermaidSyntax,
|
|
121
121
|
warmUpSettingsCache,
|
|
122
122
|
withRetry
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-BU5TP3BH.js";
|
|
124
124
|
import {
|
|
125
125
|
Logger,
|
|
126
126
|
NotificationDeduplicator,
|
|
@@ -129,7 +129,7 @@ import {
|
|
|
129
129
|
postLowCreditsNotificationToSlack,
|
|
130
130
|
postMessageToSlack
|
|
131
131
|
} from "./chunk-AMDXHL6S.js";
|
|
132
|
-
import "./chunk-
|
|
132
|
+
import "./chunk-OHR7UCTC.js";
|
|
133
133
|
import "./chunk-PDX44BCA.js";
|
|
134
134
|
export {
|
|
135
135
|
AWSBackend,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SubtractCreditsSchema,
|
|
4
4
|
subtractCredits
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-ID4NS6KF.js";
|
|
6
|
+
import "./chunk-BU5TP3BH.js";
|
|
7
7
|
import "./chunk-AMDXHL6S.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OHR7UCTC.js";
|
|
9
9
|
import "./chunk-PDX44BCA.js";
|
|
10
10
|
export {
|
|
11
11
|
SubtractCreditsSchema,
|
package/dist/utils-JPMDGUBL.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bike4mind/cli",
|
|
3
|
-
"version": "0.2.11
|
|
3
|
+
"version": "0.2.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -30,15 +30,6 @@
|
|
|
30
30
|
"dist",
|
|
31
31
|
"bin"
|
|
32
32
|
],
|
|
33
|
-
"scripts": {
|
|
34
|
-
"dev": "tsx src/index.tsx",
|
|
35
|
-
"build": "tsup",
|
|
36
|
-
"typecheck": "tsc --noEmit",
|
|
37
|
-
"test": "vitest run",
|
|
38
|
-
"test:watch": "vitest",
|
|
39
|
-
"start": "node dist/index.js",
|
|
40
|
-
"prepublishOnly": "pnpm build"
|
|
41
|
-
},
|
|
42
33
|
"dependencies": {
|
|
43
34
|
"@anthropic-ai/sdk": "^0.22.0",
|
|
44
35
|
"@aws-sdk/client-apigatewaymanagementapi": "3.654.0",
|
|
@@ -103,11 +94,6 @@
|
|
|
103
94
|
"zustand": "^4.5.4"
|
|
104
95
|
},
|
|
105
96
|
"devDependencies": {
|
|
106
|
-
"@bike4mind/agents": "0.1.0",
|
|
107
|
-
"@bike4mind/common": "2.40.1-ja-fix-confluence-table-data-5752.17351+d0f7a31b8",
|
|
108
|
-
"@bike4mind/mcp": "1.20.5-ja-fix-confluence-table-data-5752.17351+d0f7a31b8",
|
|
109
|
-
"@bike4mind/services": "2.35.1-ja-fix-confluence-table-data-5752.17351+d0f7a31b8",
|
|
110
|
-
"@bike4mind/utils": "2.1.5-ja-fix-confluence-table-data-5752.17351+d0f7a31b8",
|
|
111
97
|
"@types/better-sqlite3": "^7.6.13",
|
|
112
98
|
"@types/diff": "^5.0.9",
|
|
113
99
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -118,7 +104,19 @@
|
|
|
118
104
|
"tsup": "^8.5.1",
|
|
119
105
|
"tsx": "^4.21.0",
|
|
120
106
|
"typescript": "^5.9.3",
|
|
121
|
-
"vitest": "^3.2.4"
|
|
107
|
+
"vitest": "^3.2.4",
|
|
108
|
+
"@bike4mind/agents": "0.1.0",
|
|
109
|
+
"@bike4mind/common": "2.41.0",
|
|
110
|
+
"@bike4mind/mcp": "1.21.0",
|
|
111
|
+
"@bike4mind/services": "2.36.0",
|
|
112
|
+
"@bike4mind/utils": "2.1.5"
|
|
122
113
|
},
|
|
123
|
-
"
|
|
124
|
-
|
|
114
|
+
"scripts": {
|
|
115
|
+
"dev": "tsx src/index.tsx",
|
|
116
|
+
"build": "tsup",
|
|
117
|
+
"typecheck": "tsc --noEmit",
|
|
118
|
+
"test": "vitest run",
|
|
119
|
+
"test:watch": "vitest",
|
|
120
|
+
"start": "node dist/index.js"
|
|
121
|
+
}
|
|
122
|
+
}
|