@bike4mind/cli 0.2.22-fix-cli-missing-cloudwatch-dependency.18294 → 0.2.23-chore-update-sst-env-types.18361
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-GANN5ZGT.js → artifactExtractor-TGVFZ6EJ.js} +1 -1
- package/dist/{chunk-QZAVSLFW.js → chunk-2GU32WSW.js} +380 -1
- package/dist/{chunk-3UCVSEGP.js → chunk-6F57LWHN.js} +2 -2
- package/dist/{chunk-BGZVNMBX.js → chunk-A6S5LJBK.js} +2 -2
- package/dist/{chunk-N57SVIGZ.js → chunk-NHFY3NGY.js} +1 -1
- package/dist/{chunk-XLWF5LEL.js → chunk-X2BMJ7PD.js} +2 -2
- package/dist/{create-XVC5PGGL.js → create-J7Z5VZDZ.js} +3 -3
- package/dist/index.js +11 -11
- package/dist/{llmMarkdownGenerator-L5I7ENTP.js → llmMarkdownGenerator-GRIAHAJT.js} +1 -1
- package/dist/{markdownGenerator-XVAVZGQA.js → markdownGenerator-54SPMVKN.js} +1 -1
- package/dist/{mementoService-4DIRQJZV.js → mementoService-NAG7KZEQ.js} +3 -3
- package/dist/{src-3WK3ALZZ.js → src-3X5LMR7X.js} +2 -2
- package/dist/{src-J7E4QLQO.js → src-VS3NUCUL.js} +19 -1
- package/dist/{subtractCredits-SFT6GEO3.js → subtractCredits-WVXDJ2VB.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-2GU32WSW.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;
|
|
@@ -917,6 +917,15 @@ var SecretAuditEvents;
|
|
|
917
917
|
SecretAuditEvents2["DECRYPTION_FAILED"] = "DECRYPTION_FAILED";
|
|
918
918
|
})(SecretAuditEvents || (SecretAuditEvents = {}));
|
|
919
919
|
|
|
920
|
+
// ../../b4m-core/packages/common/dist/src/types/entities/WebhookDeliveryTypes.js
|
|
921
|
+
var WebhookDeliveryStatus;
|
|
922
|
+
(function(WebhookDeliveryStatus2) {
|
|
923
|
+
WebhookDeliveryStatus2["Success"] = "success";
|
|
924
|
+
WebhookDeliveryStatus2["Failed"] = "failed";
|
|
925
|
+
WebhookDeliveryStatus2["Skipped"] = "skipped";
|
|
926
|
+
WebhookDeliveryStatus2["Pending"] = "pending";
|
|
927
|
+
})(WebhookDeliveryStatus || (WebhookDeliveryStatus = {}));
|
|
928
|
+
|
|
920
929
|
// ../../b4m-core/packages/common/dist/src/types/common.js
|
|
921
930
|
var SupportedFabFileMimeTypes;
|
|
922
931
|
(function(SupportedFabFileMimeTypes2) {
|
|
@@ -2242,7 +2251,9 @@ var SettingKeySchema = z21.enum([
|
|
|
2242
2251
|
"EnableStreamIdleTimeout",
|
|
2243
2252
|
"StreamIdleTimeoutSeconds",
|
|
2244
2253
|
"EnableMcpToolFiltering",
|
|
2245
|
-
"McpToolFilteringMaxTools"
|
|
2254
|
+
"McpToolFilteringMaxTools",
|
|
2255
|
+
// LIVEOPS TRIAGE AUTOMATION SETTINGS
|
|
2256
|
+
"liveopsTriageConfig"
|
|
2246
2257
|
]);
|
|
2247
2258
|
var CategoryOrder = [
|
|
2248
2259
|
"AI",
|
|
@@ -2473,6 +2484,46 @@ var WhatsNewSyncConfigSchema = z21.object({
|
|
|
2473
2484
|
*/
|
|
2474
2485
|
distributionUrlOverride: z21.string().url().nullable().optional()
|
|
2475
2486
|
});
|
|
2487
|
+
var LIVEOPS_TRIAGE_VALIDATION_LIMITS = {
|
|
2488
|
+
// Model configuration
|
|
2489
|
+
temperature: { min: 0, max: 2, default: 0.3 },
|
|
2490
|
+
maxTokens: { min: 100, max: 1e4, default: 1e3 },
|
|
2491
|
+
timeoutMs: { min: 3e4, max: 6e5, default: 6e4 },
|
|
2492
|
+
// Processing limits
|
|
2493
|
+
lookbackHours: { min: 1, max: 168, default: 24 },
|
|
2494
|
+
maxErrorsPerRun: { min: 1, max: 100, default: 50 },
|
|
2495
|
+
// Prompt template
|
|
2496
|
+
promptTemplate: { min: 50, max: 1e4 }
|
|
2497
|
+
};
|
|
2498
|
+
var LT = LIVEOPS_TRIAGE_VALIDATION_LIMITS;
|
|
2499
|
+
var LiveopsTriageConfigSchema = z21.object({
|
|
2500
|
+
// General settings
|
|
2501
|
+
enabled: z21.boolean().default(false),
|
|
2502
|
+
slackChannelId: z21.string(),
|
|
2503
|
+
githubOwner: z21.string(),
|
|
2504
|
+
githubRepo: z21.string(),
|
|
2505
|
+
// Model configuration
|
|
2506
|
+
modelId: z21.string(),
|
|
2507
|
+
temperature: z21.number().min(LT.temperature.min).max(LT.temperature.max).default(LT.temperature.default),
|
|
2508
|
+
maxTokens: z21.number().min(LT.maxTokens.min).max(LT.maxTokens.max).default(LT.maxTokens.default),
|
|
2509
|
+
timeoutMs: z21.number().min(LT.timeoutMs.min).max(LT.timeoutMs.max).default(LT.timeoutMs.default),
|
|
2510
|
+
// Processing configuration
|
|
2511
|
+
lookbackHours: z21.number().min(LT.lookbackHours.min).max(LT.lookbackHours.max).default(LT.lookbackHours.default),
|
|
2512
|
+
maxErrorsPerRun: z21.number().min(LT.maxErrorsPerRun.min).max(LT.maxErrorsPerRun.max).default(LT.maxErrorsPerRun.default),
|
|
2513
|
+
autoCreateIssues: z21.boolean().default(false),
|
|
2514
|
+
// Custom prompt template (optional)
|
|
2515
|
+
promptTemplate: z21.string().min(LT.promptTemplate.min, `Prompt template must be at least ${LT.promptTemplate.min} characters`).max(LT.promptTemplate.max, `Prompt template cannot exceed ${LT.promptTemplate.max.toLocaleString()} characters`).trim().optional(),
|
|
2516
|
+
// Run tracking (for idempotency)
|
|
2517
|
+
lastRunAt: z21.string().datetime().optional(),
|
|
2518
|
+
lastRunDate: z21.string().optional(),
|
|
2519
|
+
// YYYY-MM-DD for idempotency
|
|
2520
|
+
lastRunResult: z21.object({
|
|
2521
|
+
status: z21.enum(["success", "partial", "failed"]),
|
|
2522
|
+
errorsProcessed: z21.number(),
|
|
2523
|
+
issuesCreated: z21.array(z21.number()),
|
|
2524
|
+
issuesDeduplicated: z21.number()
|
|
2525
|
+
}).optional()
|
|
2526
|
+
});
|
|
2476
2527
|
var API_SERVICE_GROUPS = {
|
|
2477
2528
|
OPENAI: {
|
|
2478
2529
|
id: "openAIService",
|
|
@@ -3760,6 +3811,27 @@ var settingsMap = {
|
|
|
3760
3811
|
category: "Experimental",
|
|
3761
3812
|
group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
|
|
3762
3813
|
order: 15
|
|
3814
|
+
}),
|
|
3815
|
+
liveopsTriageConfig: makeObjectSetting({
|
|
3816
|
+
key: "liveopsTriageConfig",
|
|
3817
|
+
name: "LiveOps Triage Configuration",
|
|
3818
|
+
defaultValue: {
|
|
3819
|
+
enabled: false,
|
|
3820
|
+
slackChannelId: "",
|
|
3821
|
+
githubOwner: "",
|
|
3822
|
+
githubRepo: "",
|
|
3823
|
+
modelId: "",
|
|
3824
|
+
temperature: 0.3,
|
|
3825
|
+
maxTokens: 1e3,
|
|
3826
|
+
timeoutMs: 6e4,
|
|
3827
|
+
lookbackHours: 24,
|
|
3828
|
+
maxErrorsPerRun: 50,
|
|
3829
|
+
autoCreateIssues: false
|
|
3830
|
+
},
|
|
3831
|
+
description: "Configuration for automated LiveOps triage system. Fetches error alerts from Slack, triages by priority using LLM, and creates GitHub issues automatically.",
|
|
3832
|
+
category: "Admin",
|
|
3833
|
+
order: 110,
|
|
3834
|
+
schema: LiveopsTriageConfigSchema
|
|
3763
3835
|
})
|
|
3764
3836
|
// Add more settings as needed
|
|
3765
3837
|
};
|
|
@@ -5544,6 +5616,87 @@ var ConfluenceApi = class {
|
|
|
5544
5616
|
}
|
|
5545
5617
|
};
|
|
5546
5618
|
|
|
5619
|
+
// ../../b4m-core/packages/common/dist/src/jira/agile/format.js
|
|
5620
|
+
function formatBoard(board, siteUrl) {
|
|
5621
|
+
if (!board || typeof board !== "object" || "error" in board || "errors" in board || !board.id) {
|
|
5622
|
+
console.warn("[formatBoard] Received invalid or error response:", JSON.stringify(board));
|
|
5623
|
+
throw new Error(`Invalid board data received: ${JSON.stringify(board)}`);
|
|
5624
|
+
}
|
|
5625
|
+
const baseUrl = siteUrl.replace(/\/(wiki|jira)\/?$/, "");
|
|
5626
|
+
const projectKey = board.location?.projectKey;
|
|
5627
|
+
const link = projectKey ? `${baseUrl}/jira/software/projects/${projectKey}/boards/${board.id}` : `${baseUrl}/jira/software/c/projects?selectedProjectType=software`;
|
|
5628
|
+
return {
|
|
5629
|
+
id: board.id,
|
|
5630
|
+
name: board.name,
|
|
5631
|
+
type: board.type,
|
|
5632
|
+
link,
|
|
5633
|
+
project: board.location ? {
|
|
5634
|
+
key: board.location.projectKey ?? "",
|
|
5635
|
+
name: board.location.projectName ?? ""
|
|
5636
|
+
} : void 0
|
|
5637
|
+
};
|
|
5638
|
+
}
|
|
5639
|
+
function formatBoardList(response, siteUrl) {
|
|
5640
|
+
if (!response || typeof response !== "object" || "error" in response || "errors" in response) {
|
|
5641
|
+
console.warn("[formatBoardList] Received invalid or error response:", JSON.stringify(response));
|
|
5642
|
+
throw new Error(`Invalid board list response received: ${JSON.stringify(response)}`);
|
|
5643
|
+
}
|
|
5644
|
+
const boards = Array.isArray(response.values) ? response.values.map((board) => formatBoard(board, siteUrl)) : [];
|
|
5645
|
+
return {
|
|
5646
|
+
total: response.total,
|
|
5647
|
+
startAt: response.startAt || 0,
|
|
5648
|
+
maxResults: response.maxResults || 0,
|
|
5649
|
+
isLast: response.isLast,
|
|
5650
|
+
boards
|
|
5651
|
+
};
|
|
5652
|
+
}
|
|
5653
|
+
function formatSprint(sprint, siteUrl, boardId) {
|
|
5654
|
+
if (!sprint || typeof sprint !== "object" || "error" in sprint || "errors" in sprint || !sprint.id) {
|
|
5655
|
+
console.warn("[formatSprint] Received invalid or error response:", JSON.stringify(sprint));
|
|
5656
|
+
throw new Error(`Invalid sprint data received: ${JSON.stringify(sprint)}`);
|
|
5657
|
+
}
|
|
5658
|
+
const baseUrl = siteUrl.replace(/\/(wiki|jira)\/?$/, "");
|
|
5659
|
+
const effectiveBoardId = boardId || sprint.originBoardId;
|
|
5660
|
+
const link = effectiveBoardId ? `${baseUrl}/jira/software/c/projects?selectedProjectType=software&rapidView=${effectiveBoardId}` : void 0;
|
|
5661
|
+
return {
|
|
5662
|
+
id: sprint.id,
|
|
5663
|
+
name: sprint.name,
|
|
5664
|
+
state: sprint.state,
|
|
5665
|
+
goal: sprint.goal || void 0,
|
|
5666
|
+
startDate: sprint.startDate || void 0,
|
|
5667
|
+
endDate: sprint.endDate || void 0,
|
|
5668
|
+
completeDate: sprint.completeDate || void 0,
|
|
5669
|
+
originBoardId: sprint.originBoardId,
|
|
5670
|
+
link
|
|
5671
|
+
};
|
|
5672
|
+
}
|
|
5673
|
+
function formatSprintList(response, siteUrl, boardId) {
|
|
5674
|
+
if (!response || typeof response !== "object" || "error" in response || "errors" in response) {
|
|
5675
|
+
console.warn("[formatSprintList] Received invalid or error response:", JSON.stringify(response));
|
|
5676
|
+
throw new Error(`Invalid sprint list response received: ${JSON.stringify(response)}`);
|
|
5677
|
+
}
|
|
5678
|
+
const sprints = Array.isArray(response.values) ? response.values.map((sprint) => formatSprint(sprint, siteUrl, boardId)) : [];
|
|
5679
|
+
return {
|
|
5680
|
+
startAt: response.startAt || 0,
|
|
5681
|
+
maxResults: response.maxResults || 0,
|
|
5682
|
+
isLast: response.isLast,
|
|
5683
|
+
sprints
|
|
5684
|
+
};
|
|
5685
|
+
}
|
|
5686
|
+
function formatSprintIssues(response, siteUrl) {
|
|
5687
|
+
if (!response || typeof response !== "object" || "error" in response || "errors" in response) {
|
|
5688
|
+
console.warn("[formatSprintIssues] Received invalid or error response:", JSON.stringify(response));
|
|
5689
|
+
throw new Error(`Invalid sprint issues response received: ${JSON.stringify(response)}`);
|
|
5690
|
+
}
|
|
5691
|
+
const issues = Array.isArray(response.issues) ? response.issues.map((issue) => formatIssueDetails(issue, siteUrl)) : [];
|
|
5692
|
+
return {
|
|
5693
|
+
total: response.total || 0,
|
|
5694
|
+
startAt: response.startAt || 0,
|
|
5695
|
+
maxResults: response.maxResults || 0,
|
|
5696
|
+
issues
|
|
5697
|
+
};
|
|
5698
|
+
}
|
|
5699
|
+
|
|
5547
5700
|
// ../../b4m-core/packages/common/dist/src/jira/format.js
|
|
5548
5701
|
function stripHtmlAndNormalizeWhitespace2(html) {
|
|
5549
5702
|
if (!html)
|
|
@@ -5792,6 +5945,207 @@ function formatIssueLinks(links, siteUrl) {
|
|
|
5792
5945
|
});
|
|
5793
5946
|
}
|
|
5794
5947
|
|
|
5948
|
+
// ../../b4m-core/packages/common/dist/src/jira/agile/api.js
|
|
5949
|
+
function isValidBoardOrSprintId(id) {
|
|
5950
|
+
return Number.isInteger(id) && id > 0;
|
|
5951
|
+
}
|
|
5952
|
+
var AgileApi = class {
|
|
5953
|
+
config;
|
|
5954
|
+
constructor(config) {
|
|
5955
|
+
this.config = config;
|
|
5956
|
+
}
|
|
5957
|
+
/**
|
|
5958
|
+
* Build URL for Agile API (uses different base URL than standard Jira API)
|
|
5959
|
+
*/
|
|
5960
|
+
buildAgileUrl(path, query = {}) {
|
|
5961
|
+
const base = `${this.config.agileApiBaseUrl}${path}`;
|
|
5962
|
+
const url = new URL(base);
|
|
5963
|
+
Object.entries(query).forEach(([key, value]) => {
|
|
5964
|
+
if (value === void 0 || value === "")
|
|
5965
|
+
return;
|
|
5966
|
+
url.searchParams.append(key, String(value));
|
|
5967
|
+
});
|
|
5968
|
+
return url.toString();
|
|
5969
|
+
}
|
|
5970
|
+
/**
|
|
5971
|
+
* Make authenticated HTTP request to Agile API
|
|
5972
|
+
*/
|
|
5973
|
+
async requestAgile(method, path, options = {}) {
|
|
5974
|
+
const url = this.buildAgileUrl(path, options.query);
|
|
5975
|
+
const headers = {
|
|
5976
|
+
Authorization: this.config.authHeader,
|
|
5977
|
+
Accept: "application/json",
|
|
5978
|
+
"Content-Type": "application/json"
|
|
5979
|
+
};
|
|
5980
|
+
const response = await fetch(url, {
|
|
5981
|
+
method,
|
|
5982
|
+
headers,
|
|
5983
|
+
body: options.body ? JSON.stringify(options.body) : void 0
|
|
5984
|
+
});
|
|
5985
|
+
if (!response.ok) {
|
|
5986
|
+
const errorBody = await response.text();
|
|
5987
|
+
if (response.status === 403 && errorBody.includes("Jira Software")) {
|
|
5988
|
+
throw new Error(`Jira Software is not available: ${errorBody}. Sprint and board operations require a Jira Software license.`);
|
|
5989
|
+
}
|
|
5990
|
+
throw new Error(`Jira Agile API error (${response.status}): ${errorBody}`);
|
|
5991
|
+
}
|
|
5992
|
+
if (response.status === 204) {
|
|
5993
|
+
return void 0;
|
|
5994
|
+
}
|
|
5995
|
+
const data = await response.json();
|
|
5996
|
+
return data;
|
|
5997
|
+
}
|
|
5998
|
+
// ============================================================================
|
|
5999
|
+
// Board Operations
|
|
6000
|
+
// ============================================================================
|
|
6001
|
+
/**
|
|
6002
|
+
* List all boards visible to the user
|
|
6003
|
+
*/
|
|
6004
|
+
async listBoards(params) {
|
|
6005
|
+
const { startAt = 0, maxResults = 50, type, name, projectKeyOrId } = params || {};
|
|
6006
|
+
const result = await this.requestAgile("GET", "/board", {
|
|
6007
|
+
query: {
|
|
6008
|
+
startAt,
|
|
6009
|
+
maxResults,
|
|
6010
|
+
type,
|
|
6011
|
+
name,
|
|
6012
|
+
projectKeyOrId
|
|
6013
|
+
}
|
|
6014
|
+
});
|
|
6015
|
+
return formatBoardList(result, this.config.siteUrl);
|
|
6016
|
+
}
|
|
6017
|
+
/**
|
|
6018
|
+
* Get a single board by ID
|
|
6019
|
+
*/
|
|
6020
|
+
async getBoard(params) {
|
|
6021
|
+
const { boardId } = params;
|
|
6022
|
+
if (!isValidBoardOrSprintId(boardId)) {
|
|
6023
|
+
throw new Error(`Invalid boardId: ${boardId}. Must be a positive integer.`);
|
|
6024
|
+
}
|
|
6025
|
+
const board = await this.requestAgile("GET", `/board/${boardId}`);
|
|
6026
|
+
return formatBoard(board, this.config.siteUrl);
|
|
6027
|
+
}
|
|
6028
|
+
// ============================================================================
|
|
6029
|
+
// Sprint Operations
|
|
6030
|
+
// ============================================================================
|
|
6031
|
+
/**
|
|
6032
|
+
* List sprints for a board
|
|
6033
|
+
*/
|
|
6034
|
+
async listSprints(params) {
|
|
6035
|
+
const { boardId, startAt = 0, maxResults = 50, state } = params;
|
|
6036
|
+
if (!isValidBoardOrSprintId(boardId)) {
|
|
6037
|
+
throw new Error(`Invalid boardId: ${boardId}. Must be a positive integer.`);
|
|
6038
|
+
}
|
|
6039
|
+
const result = await this.requestAgile("GET", `/board/${boardId}/sprint`, {
|
|
6040
|
+
query: {
|
|
6041
|
+
startAt,
|
|
6042
|
+
maxResults,
|
|
6043
|
+
state
|
|
6044
|
+
}
|
|
6045
|
+
});
|
|
6046
|
+
return formatSprintList(result, this.config.siteUrl, boardId);
|
|
6047
|
+
}
|
|
6048
|
+
/**
|
|
6049
|
+
* Get a single sprint by ID
|
|
6050
|
+
*/
|
|
6051
|
+
async getSprint(params) {
|
|
6052
|
+
const { sprintId } = params;
|
|
6053
|
+
if (!isValidBoardOrSprintId(sprintId)) {
|
|
6054
|
+
throw new Error(`Invalid sprintId: ${sprintId}. Must be a positive integer.`);
|
|
6055
|
+
}
|
|
6056
|
+
const sprint = await this.requestAgile("GET", `/sprint/${sprintId}`);
|
|
6057
|
+
return formatSprint(sprint, this.config.siteUrl);
|
|
6058
|
+
}
|
|
6059
|
+
/**
|
|
6060
|
+
* Create a new sprint
|
|
6061
|
+
*/
|
|
6062
|
+
async createSprint(params) {
|
|
6063
|
+
const { name, originBoardId, goal, startDate, endDate } = params;
|
|
6064
|
+
if (!isValidBoardOrSprintId(originBoardId)) {
|
|
6065
|
+
throw new Error(`Invalid originBoardId: ${originBoardId}. Must be a positive integer.`);
|
|
6066
|
+
}
|
|
6067
|
+
const sprint = await this.requestAgile("POST", "/sprint", {
|
|
6068
|
+
body: {
|
|
6069
|
+
name,
|
|
6070
|
+
originBoardId,
|
|
6071
|
+
goal,
|
|
6072
|
+
startDate,
|
|
6073
|
+
endDate
|
|
6074
|
+
}
|
|
6075
|
+
});
|
|
6076
|
+
return formatSprint(sprint, this.config.siteUrl, originBoardId);
|
|
6077
|
+
}
|
|
6078
|
+
/**
|
|
6079
|
+
* Update an existing sprint (partial update via POST)
|
|
6080
|
+
* Can be used to: rename, set dates, set goal, start sprint, or close sprint
|
|
6081
|
+
*/
|
|
6082
|
+
async updateSprint(params) {
|
|
6083
|
+
const { sprintId, name, goal, startDate, endDate, state } = params;
|
|
6084
|
+
if (!isValidBoardOrSprintId(sprintId)) {
|
|
6085
|
+
throw new Error(`Invalid sprintId: ${sprintId}. Must be a positive integer.`);
|
|
6086
|
+
}
|
|
6087
|
+
const body = {};
|
|
6088
|
+
if (name !== void 0)
|
|
6089
|
+
body.name = name;
|
|
6090
|
+
if (goal !== void 0)
|
|
6091
|
+
body.goal = goal;
|
|
6092
|
+
if (startDate !== void 0)
|
|
6093
|
+
body.startDate = startDate;
|
|
6094
|
+
if (endDate !== void 0)
|
|
6095
|
+
body.endDate = endDate;
|
|
6096
|
+
if (state !== void 0)
|
|
6097
|
+
body.state = state;
|
|
6098
|
+
const sprint = await this.requestAgile("POST", `/sprint/${sprintId}`, {
|
|
6099
|
+
body
|
|
6100
|
+
});
|
|
6101
|
+
return formatSprint(sprint, this.config.siteUrl);
|
|
6102
|
+
}
|
|
6103
|
+
// ============================================================================
|
|
6104
|
+
// Sprint Issue Operations
|
|
6105
|
+
// ============================================================================
|
|
6106
|
+
/**
|
|
6107
|
+
* Get issues in a sprint
|
|
6108
|
+
*/
|
|
6109
|
+
async getSprintIssues(params) {
|
|
6110
|
+
const { sprintId, startAt = 0, maxResults = 50, jql, fields } = params;
|
|
6111
|
+
if (!isValidBoardOrSprintId(sprintId)) {
|
|
6112
|
+
throw new Error(`Invalid sprintId: ${sprintId}. Must be a positive integer.`);
|
|
6113
|
+
}
|
|
6114
|
+
const result = await this.requestAgile("GET", `/sprint/${sprintId}/issue`, {
|
|
6115
|
+
query: {
|
|
6116
|
+
startAt,
|
|
6117
|
+
maxResults,
|
|
6118
|
+
jql,
|
|
6119
|
+
fields: fields?.join(",")
|
|
6120
|
+
}
|
|
6121
|
+
});
|
|
6122
|
+
return formatSprintIssues(result, this.config.siteUrl);
|
|
6123
|
+
}
|
|
6124
|
+
/**
|
|
6125
|
+
* Move issues to a sprint (max 50 issues per request)
|
|
6126
|
+
* Issues can only be moved to open or active sprints
|
|
6127
|
+
*/
|
|
6128
|
+
async moveIssuesToSprint(params) {
|
|
6129
|
+
const { sprintId, issues } = params;
|
|
6130
|
+
if (!isValidBoardOrSprintId(sprintId)) {
|
|
6131
|
+
throw new Error(`Invalid sprintId: ${sprintId}. Must be a positive integer.`);
|
|
6132
|
+
}
|
|
6133
|
+
if (issues.length === 0) {
|
|
6134
|
+
return;
|
|
6135
|
+
}
|
|
6136
|
+
const invalidKeys = issues.filter((key) => !isValidIssueKey(key));
|
|
6137
|
+
if (invalidKeys.length > 0) {
|
|
6138
|
+
throw new Error(`Invalid issue key format: ${invalidKeys.join(", ")}`);
|
|
6139
|
+
}
|
|
6140
|
+
if (issues.length > 50) {
|
|
6141
|
+
throw new Error("Maximum 50 issues can be moved to a sprint in one operation. Please split your request.");
|
|
6142
|
+
}
|
|
6143
|
+
await this.requestAgile("POST", `/sprint/${sprintId}/issue`, {
|
|
6144
|
+
body: { issues }
|
|
6145
|
+
});
|
|
6146
|
+
}
|
|
6147
|
+
};
|
|
6148
|
+
|
|
5795
6149
|
// ../../b4m-core/packages/common/dist/src/jira/api.js
|
|
5796
6150
|
function isValidIssueKey(key) {
|
|
5797
6151
|
return /^[A-Z][A-Z0-9]*-\d+$/.test(key);
|
|
@@ -6403,6 +6757,20 @@ var JiraApi = class {
|
|
|
6403
6757
|
}
|
|
6404
6758
|
return null;
|
|
6405
6759
|
}
|
|
6760
|
+
// ============================================================================
|
|
6761
|
+
// Agile API Access (Jira Software - Boards, Sprints)
|
|
6762
|
+
// ============================================================================
|
|
6763
|
+
_agileApi = null;
|
|
6764
|
+
/**
|
|
6765
|
+
* Get the Agile API client for board and sprint operations.
|
|
6766
|
+
* Lazily instantiated on first access.
|
|
6767
|
+
*/
|
|
6768
|
+
get agile() {
|
|
6769
|
+
if (!this._agileApi) {
|
|
6770
|
+
this._agileApi = new AgileApi(this.config);
|
|
6771
|
+
}
|
|
6772
|
+
return this._agileApi;
|
|
6773
|
+
}
|
|
6406
6774
|
};
|
|
6407
6775
|
|
|
6408
6776
|
// ../../b4m-core/packages/common/dist/src/atlassian/config.js
|
|
@@ -6444,6 +6812,7 @@ function getAtlassianConfig() {
|
|
|
6444
6812
|
const confluenceApiBaseUrlV2 = `https://api.atlassian.com/ex/confluence/${cloudId}/wiki/api/v2`;
|
|
6445
6813
|
const jiraWebBaseUrl = normalizedSiteUrl.endsWith("/wiki") ? normalizedSiteUrl.replace(/\/wiki$/, "/jira") : `${normalizedSiteUrl}/jira`;
|
|
6446
6814
|
const jiraApiBaseUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3`;
|
|
6815
|
+
const jiraAgileApiBaseUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/agile/1.0`;
|
|
6447
6816
|
const authHeader = `Bearer ${accessToken}`;
|
|
6448
6817
|
return {
|
|
6449
6818
|
jira: {
|
|
@@ -6452,6 +6821,7 @@ function getAtlassianConfig() {
|
|
|
6452
6821
|
siteUrl: jiraWebBaseUrl,
|
|
6453
6822
|
webBaseUrl: jiraWebBaseUrl,
|
|
6454
6823
|
apiBaseUrl: jiraApiBaseUrl,
|
|
6824
|
+
agileApiBaseUrl: jiraAgileApiBaseUrl,
|
|
6455
6825
|
authHeader
|
|
6456
6826
|
},
|
|
6457
6827
|
confluence: {
|
|
@@ -7080,6 +7450,7 @@ export {
|
|
|
7080
7450
|
NOT_CONFIGURED_PLACEHOLDER,
|
|
7081
7451
|
isPlaceholderValue,
|
|
7082
7452
|
SecretAuditEvents,
|
|
7453
|
+
WebhookDeliveryStatus,
|
|
7083
7454
|
SupportedFabFileMimeTypes,
|
|
7084
7455
|
CODE_FILE_MIME_TYPES,
|
|
7085
7456
|
DataSubscribeRequestAction,
|
|
@@ -7164,6 +7535,8 @@ export {
|
|
|
7164
7535
|
WHATS_NEW_VALIDATION_LIMITS,
|
|
7165
7536
|
WhatsNewConfigSchema,
|
|
7166
7537
|
WhatsNewSyncConfigSchema,
|
|
7538
|
+
LIVEOPS_TRIAGE_VALIDATION_LIMITS,
|
|
7539
|
+
LiveopsTriageConfigSchema,
|
|
7167
7540
|
API_SERVICE_GROUPS,
|
|
7168
7541
|
settingsMap,
|
|
7169
7542
|
StringBooleanSchema,
|
|
@@ -7218,6 +7591,11 @@ export {
|
|
|
7218
7591
|
RESTRICTION_OPERATIONS,
|
|
7219
7592
|
RESTRICTION_SUBJECT_TYPES,
|
|
7220
7593
|
ConfluenceApi,
|
|
7594
|
+
formatBoard,
|
|
7595
|
+
formatBoardList,
|
|
7596
|
+
formatSprint,
|
|
7597
|
+
formatSprintList,
|
|
7598
|
+
formatSprintIssues,
|
|
7221
7599
|
formatIssueResponse,
|
|
7222
7600
|
formatProjectResponse,
|
|
7223
7601
|
formatIssueDetails,
|
|
@@ -7231,6 +7609,7 @@ export {
|
|
|
7231
7609
|
formatWatchers,
|
|
7232
7610
|
formatIssueLinkTypes,
|
|
7233
7611
|
formatIssueLinks,
|
|
7612
|
+
AgileApi,
|
|
7234
7613
|
isValidIssueKey,
|
|
7235
7614
|
wikiMarkupToAdf,
|
|
7236
7615
|
containsWikiTable,
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
getSettingsMap,
|
|
8
8
|
getSettingsValue,
|
|
9
9
|
secureParameters
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NHFY3NGY.js";
|
|
11
11
|
import {
|
|
12
12
|
KnowledgeType,
|
|
13
13
|
SupportedFabFileMimeTypes
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2GU32WSW.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-NHFY3NGY.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiKeyType,
|
|
12
12
|
MementoTier,
|
|
13
13
|
isSupportedEmbeddingModel
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2GU32WSW.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/apiKeyService/get.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-NHFY3NGY.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-2GU32WSW.js";
|
|
16
16
|
|
|
17
17
|
// ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
|
|
18
18
|
import { z } from "zod";
|
|
@@ -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-6F57LWHN.js";
|
|
6
|
+
import "./chunk-NHFY3NGY.js";
|
|
7
|
+
import "./chunk-2GU32WSW.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
createFabFile,
|
package/dist/index.js
CHANGED
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
getEffectiveApiKey,
|
|
5
5
|
getOpenWeatherKey,
|
|
6
6
|
getSerperKey
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A6S5LJBK.js";
|
|
8
8
|
import {
|
|
9
9
|
ConfigStore
|
|
10
10
|
} from "./chunk-CC3VKAAL.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-X2BMJ7PD.js";
|
|
12
|
+
import "./chunk-6F57LWHN.js";
|
|
13
13
|
import {
|
|
14
14
|
BFLImageService,
|
|
15
15
|
BaseStorage,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
OpenAIBackend,
|
|
22
22
|
OpenAIImageService,
|
|
23
23
|
XAIImageService
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-NHFY3NGY.js";
|
|
25
25
|
import {
|
|
26
26
|
AiEvents,
|
|
27
27
|
ApiKeyEvents,
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
XAI_IMAGE_MODELS,
|
|
78
78
|
b4mLLMTools,
|
|
79
79
|
getMcpProviderMetadata
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-2GU32WSW.js";
|
|
81
81
|
import {
|
|
82
82
|
Logger
|
|
83
83
|
} from "./chunk-OCYRD7D6.js";
|
|
@@ -12443,7 +12443,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
|
|
|
12443
12443
|
// package.json
|
|
12444
12444
|
var package_default = {
|
|
12445
12445
|
name: "@bike4mind/cli",
|
|
12446
|
-
version: "0.2.
|
|
12446
|
+
version: "0.2.23-chore-update-sst-env-types.18361+9edc687a8",
|
|
12447
12447
|
type: "module",
|
|
12448
12448
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
12449
12449
|
license: "UNLICENSED",
|
|
@@ -12551,10 +12551,10 @@ var package_default = {
|
|
|
12551
12551
|
},
|
|
12552
12552
|
devDependencies: {
|
|
12553
12553
|
"@bike4mind/agents": "0.1.0",
|
|
12554
|
-
"@bike4mind/common": "2.46.1-
|
|
12555
|
-
"@bike4mind/mcp": "1.26.1-
|
|
12556
|
-
"@bike4mind/services": "2.44.1-
|
|
12557
|
-
"@bike4mind/utils": "2.3.2-
|
|
12554
|
+
"@bike4mind/common": "2.46.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
12555
|
+
"@bike4mind/mcp": "1.26.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
12556
|
+
"@bike4mind/services": "2.44.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
12557
|
+
"@bike4mind/utils": "2.3.2-chore-update-sst-env-types.18361+9edc687a8",
|
|
12558
12558
|
"@types/better-sqlite3": "^7.6.13",
|
|
12559
12559
|
"@types/diff": "^5.0.9",
|
|
12560
12560
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -12571,7 +12571,7 @@ var package_default = {
|
|
|
12571
12571
|
optionalDependencies: {
|
|
12572
12572
|
"@vscode/ripgrep": "^1.17.0"
|
|
12573
12573
|
},
|
|
12574
|
-
gitHead: "
|
|
12574
|
+
gitHead: "9edc687a827be33ba7343b88454e3cdb766e02dc"
|
|
12575
12575
|
};
|
|
12576
12576
|
|
|
12577
12577
|
// 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-A6S5LJBK.js";
|
|
6
|
+
import "./chunk-NHFY3NGY.js";
|
|
7
|
+
import "./chunk-2GU32WSW.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
findMostSimilarMemento,
|
|
@@ -132,8 +132,8 @@ import {
|
|
|
132
132
|
validateMermaidSyntax,
|
|
133
133
|
warmUpSettingsCache,
|
|
134
134
|
withRetry
|
|
135
|
-
} from "./chunk-
|
|
136
|
-
import "./chunk-
|
|
135
|
+
} from "./chunk-NHFY3NGY.js";
|
|
136
|
+
import "./chunk-2GU32WSW.js";
|
|
137
137
|
import {
|
|
138
138
|
Logger,
|
|
139
139
|
NotificationDeduplicator,
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
ALL_IMAGE_SIZES,
|
|
5
5
|
API_SERVICE_GROUPS,
|
|
6
6
|
APP_NAME,
|
|
7
|
+
AgileApi,
|
|
7
8
|
AiEvents,
|
|
8
9
|
ApiKeyEvents,
|
|
9
10
|
ApiKeyScope,
|
|
@@ -109,10 +110,12 @@ import {
|
|
|
109
110
|
InvitesRefetchAction,
|
|
110
111
|
JiraApi,
|
|
111
112
|
KnowledgeType,
|
|
113
|
+
LIVEOPS_TRIAGE_VALIDATION_LIMITS,
|
|
112
114
|
LLMApiRequestBodySchema,
|
|
113
115
|
LLMEvents,
|
|
114
116
|
LLMStatusUpdateAction,
|
|
115
117
|
LinkedInApi,
|
|
118
|
+
LiveopsTriageConfigSchema,
|
|
116
119
|
LogoSettingsSchema,
|
|
117
120
|
MCP_PROVIDER_METADATA,
|
|
118
121
|
McpServerName,
|
|
@@ -237,6 +240,7 @@ import {
|
|
|
237
240
|
VoyageAIEmbeddingModel,
|
|
238
241
|
WEBSITE_URL,
|
|
239
242
|
WHATS_NEW_VALIDATION_LIMITS,
|
|
243
|
+
WebhookDeliveryStatus,
|
|
240
244
|
WhatsNewConfigSchema,
|
|
241
245
|
WhatsNewSyncConfigSchema,
|
|
242
246
|
XAI_IMAGE_MODELS,
|
|
@@ -256,6 +260,8 @@ import {
|
|
|
256
260
|
determineMimeType,
|
|
257
261
|
extractSnippetMeta,
|
|
258
262
|
formatActivityMessage,
|
|
263
|
+
formatBoard,
|
|
264
|
+
formatBoardList,
|
|
259
265
|
formatComment,
|
|
260
266
|
formatIssueDetails,
|
|
261
267
|
formatIssueLinkTypes,
|
|
@@ -265,6 +271,9 @@ import {
|
|
|
265
271
|
formatProjectResponse,
|
|
266
272
|
formatSSEError,
|
|
267
273
|
formatSearchResults,
|
|
274
|
+
formatSprint,
|
|
275
|
+
formatSprintIssues,
|
|
276
|
+
formatSprintList,
|
|
268
277
|
formatTransitionResult,
|
|
269
278
|
formatTransitions,
|
|
270
279
|
formatUser,
|
|
@@ -322,12 +331,13 @@ import {
|
|
|
322
331
|
validateReactArtifactV2,
|
|
323
332
|
validateSvgArtifactV2,
|
|
324
333
|
wikiMarkupToAdf
|
|
325
|
-
} from "./chunk-
|
|
334
|
+
} from "./chunk-2GU32WSW.js";
|
|
326
335
|
export {
|
|
327
336
|
ALL_IMAGE_MODELS,
|
|
328
337
|
ALL_IMAGE_SIZES,
|
|
329
338
|
API_SERVICE_GROUPS,
|
|
330
339
|
APP_NAME,
|
|
340
|
+
AgileApi,
|
|
331
341
|
AiEvents,
|
|
332
342
|
ApiKeyEvents,
|
|
333
343
|
ApiKeyScope,
|
|
@@ -433,10 +443,12 @@ export {
|
|
|
433
443
|
InvitesRefetchAction,
|
|
434
444
|
JiraApi,
|
|
435
445
|
KnowledgeType,
|
|
446
|
+
LIVEOPS_TRIAGE_VALIDATION_LIMITS,
|
|
436
447
|
LLMApiRequestBodySchema,
|
|
437
448
|
LLMEvents,
|
|
438
449
|
LLMStatusUpdateAction,
|
|
439
450
|
LinkedInApi,
|
|
451
|
+
LiveopsTriageConfigSchema,
|
|
440
452
|
LogoSettingsSchema,
|
|
441
453
|
MCP_PROVIDER_METADATA,
|
|
442
454
|
McpServerName,
|
|
@@ -561,6 +573,7 @@ export {
|
|
|
561
573
|
VoyageAIEmbeddingModel,
|
|
562
574
|
WEBSITE_URL,
|
|
563
575
|
WHATS_NEW_VALIDATION_LIMITS,
|
|
576
|
+
WebhookDeliveryStatus,
|
|
564
577
|
WhatsNewConfigSchema,
|
|
565
578
|
WhatsNewSyncConfigSchema,
|
|
566
579
|
XAI_IMAGE_MODELS,
|
|
@@ -580,6 +593,8 @@ export {
|
|
|
580
593
|
determineMimeType,
|
|
581
594
|
extractSnippetMeta,
|
|
582
595
|
formatActivityMessage,
|
|
596
|
+
formatBoard,
|
|
597
|
+
formatBoardList,
|
|
583
598
|
formatComment,
|
|
584
599
|
formatIssueDetails,
|
|
585
600
|
formatIssueLinkTypes,
|
|
@@ -589,6 +604,9 @@ export {
|
|
|
589
604
|
formatProjectResponse,
|
|
590
605
|
formatSSEError,
|
|
591
606
|
formatSearchResults,
|
|
607
|
+
formatSprint,
|
|
608
|
+
formatSprintIssues,
|
|
609
|
+
formatSprintList,
|
|
592
610
|
formatTransitionResult,
|
|
593
611
|
formatTransitions,
|
|
594
612
|
formatUser,
|
|
@@ -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-X2BMJ7PD.js";
|
|
6
|
+
import "./chunk-NHFY3NGY.js";
|
|
7
|
+
import "./chunk-2GU32WSW.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.23-chore-update-sst-env-types.18361+9edc687a8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -108,10 +108,10 @@
|
|
|
108
108
|
},
|
|
109
109
|
"devDependencies": {
|
|
110
110
|
"@bike4mind/agents": "0.1.0",
|
|
111
|
-
"@bike4mind/common": "2.46.1-
|
|
112
|
-
"@bike4mind/mcp": "1.26.1-
|
|
113
|
-
"@bike4mind/services": "2.44.1-
|
|
114
|
-
"@bike4mind/utils": "2.3.2-
|
|
111
|
+
"@bike4mind/common": "2.46.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
112
|
+
"@bike4mind/mcp": "1.26.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
113
|
+
"@bike4mind/services": "2.44.1-chore-update-sst-env-types.18361+9edc687a8",
|
|
114
|
+
"@bike4mind/utils": "2.3.2-chore-update-sst-env-types.18361+9edc687a8",
|
|
115
115
|
"@types/better-sqlite3": "^7.6.13",
|
|
116
116
|
"@types/diff": "^5.0.9",
|
|
117
117
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -128,5 +128,5 @@
|
|
|
128
128
|
"optionalDependencies": {
|
|
129
129
|
"@vscode/ripgrep": "^1.17.0"
|
|
130
130
|
},
|
|
131
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "9edc687a827be33ba7343b88454e3cdb766e02dc"
|
|
132
132
|
}
|