@bike4mind/cli 0.2.38-feat-secops-firewall.20175 → 0.2.38-prod.20159
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-VZBEUGHF.js → artifactExtractor-Z6UQO2IR.js} +1 -1
- package/dist/{chunk-SJBMMQM3.js → chunk-5APQNY55.js} +2 -2
- package/dist/{chunk-V7HMAXDX.js → chunk-AU7OYPU4.js} +2 -2
- package/dist/{chunk-VSZJ7FSP.js → chunk-HJVFUXVX.js} +1 -1
- package/dist/{chunk-AVWSA2JN.js → chunk-J3YSVA6W.js} +2 -2
- package/dist/{chunk-C76EDJ2Q.js → chunk-NHE3MDUJ.js} +6 -6
- package/dist/{chunk-JGSATYRQ.js → chunk-OCFOJXLA.js} +27 -11
- package/dist/{chunk-TKCXVYDJ.js → chunk-QCDYXXSD.js} +1 -1
- package/dist/{chunk-OUFZVK3U.js → chunk-TVO7HQYO.js} +40 -11
- package/dist/commands/doctorCommand.js +1 -1
- package/dist/commands/headlessCommand.js +7 -7
- package/dist/commands/mcpCommand.js +2 -2
- package/dist/commands/updateCommand.js +1 -1
- package/dist/{create-QR2CQ4BL.js → create-MVD65MYF.js} +3 -3
- package/dist/index.js +8 -8
- package/dist/{llmMarkdownGenerator-VII37W5O.js → llmMarkdownGenerator-MEEKZGSS.js} +1 -1
- package/dist/{markdownGenerator-Z3IXDBMO.js → markdownGenerator-NKNJTN6H.js} +1 -1
- package/dist/{mementoService-O4SNJ5RW.js → mementoService-QPAN6H6A.js} +3 -3
- package/dist/{src-MPXIVUY3.js → src-I44AUY66.js} +9 -1
- package/dist/{src-JOTTYOAZ.js → src-UJ7SX2X5.js} +2 -2
- package/dist/{subtractCredits-47ABQYLW.js → subtractCredits-K56NLITN.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-OCFOJXLA.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;
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
getSettingsMap,
|
|
8
8
|
getSettingsValue,
|
|
9
9
|
secureParameters
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QCDYXXSD.js";
|
|
11
11
|
import {
|
|
12
12
|
KnowledgeType,
|
|
13
13
|
SupportedFabFileMimeTypes
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OCFOJXLA.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-QCDYXXSD.js";
|
|
6
6
|
import {
|
|
7
7
|
CompletionApiUsageTransaction,
|
|
8
8
|
GenericCreditDeductTransaction,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
ToolUsageTransaction,
|
|
14
14
|
TransferCreditTransaction,
|
|
15
15
|
VideoGenerationUsageTransaction
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-OCFOJXLA.js";
|
|
17
17
|
|
|
18
18
|
// ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
|
|
19
19
|
import { z } from "zod";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
getSettingsByNames,
|
|
7
7
|
obfuscateApiKey,
|
|
8
8
|
secureParameters
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QCDYXXSD.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiKeyType,
|
|
12
12
|
MementoTier,
|
|
13
13
|
isSupportedEmbeddingModel
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OCFOJXLA.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// package.json
|
|
4
4
|
var package_default = {
|
|
5
5
|
name: "@bike4mind/cli",
|
|
6
|
-
version: "0.2.38-
|
|
6
|
+
version: "0.2.38-prod.20159+a4ddc8821",
|
|
7
7
|
type: "module",
|
|
8
8
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
9
9
|
license: "UNLICENSED",
|
|
@@ -117,10 +117,10 @@ var package_default = {
|
|
|
117
117
|
},
|
|
118
118
|
devDependencies: {
|
|
119
119
|
"@bike4mind/agents": "0.1.0",
|
|
120
|
-
"@bike4mind/common": "2.58.1-
|
|
121
|
-
"@bike4mind/mcp": "1.32.6-
|
|
122
|
-
"@bike4mind/services": "2.54.2-
|
|
123
|
-
"@bike4mind/utils": "2.11.1-
|
|
120
|
+
"@bike4mind/common": "2.58.1-prod.20159+a4ddc8821",
|
|
121
|
+
"@bike4mind/mcp": "1.32.6-prod.20159+a4ddc8821",
|
|
122
|
+
"@bike4mind/services": "2.54.2-prod.20159+a4ddc8821",
|
|
123
|
+
"@bike4mind/utils": "2.11.1-prod.20159+a4ddc8821",
|
|
124
124
|
"@types/better-sqlite3": "^7.6.13",
|
|
125
125
|
"@types/diff": "^5.0.9",
|
|
126
126
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -138,7 +138,7 @@ var package_default = {
|
|
|
138
138
|
optionalDependencies: {
|
|
139
139
|
"@vscode/ripgrep": "^1.17.0"
|
|
140
140
|
},
|
|
141
|
-
gitHead: "
|
|
141
|
+
gitHead: "a4ddc8821374a175fb2bdb871b177140d2804b09"
|
|
142
142
|
};
|
|
143
143
|
|
|
144
144
|
// src/utils/updateChecker.ts
|
|
@@ -641,6 +641,7 @@ var CollectionType;
|
|
|
641
641
|
CollectionType2["PROJECT"] = "project";
|
|
642
642
|
CollectionType2["AI_IMAGE"] = "ai_image";
|
|
643
643
|
})(CollectionType || (CollectionType = {}));
|
|
644
|
+
var ROTATABLE_INTEGRATIONS = ["github", "atlassian", "slack"];
|
|
644
645
|
|
|
645
646
|
// ../../b4m-core/packages/common/dist/src/types/entities/UserApiKeyTypes.js
|
|
646
647
|
var ApiKeyScope;
|
|
@@ -5791,6 +5792,7 @@ var LinkedInApi = class {
|
|
|
5791
5792
|
};
|
|
5792
5793
|
|
|
5793
5794
|
// ../../b4m-core/packages/common/dist/src/rateLimitHeaders.js
|
|
5795
|
+
var RATE_LIMIT_INTEGRATIONS = ["github", "jira", "confluence", "slack"];
|
|
5794
5796
|
function getHeader(headers, name) {
|
|
5795
5797
|
if (!headers || typeof headers !== "object")
|
|
5796
5798
|
return null;
|
|
@@ -5839,16 +5841,24 @@ function parseRateLimitHeaders(headers) {
|
|
|
5839
5841
|
}
|
|
5840
5842
|
}
|
|
5841
5843
|
let usagePercent = null;
|
|
5842
|
-
if (limit !== null && limit > 0 && remaining !== null) {
|
|
5844
|
+
if (limit !== null && limit > 0 && remaining !== null && remaining >= 0) {
|
|
5843
5845
|
usagePercent = Math.round((limit - remaining) / limit * 100);
|
|
5844
5846
|
}
|
|
5845
5847
|
return { limit, remaining, resetAt, retryAfterMs, usagePercent };
|
|
5846
5848
|
}
|
|
5849
|
+
function hasRateLimitInfo(info) {
|
|
5850
|
+
return info.limit !== null || info.remaining !== null || info.retryAfterMs !== null;
|
|
5851
|
+
}
|
|
5847
5852
|
function isNearLimit(info, thresholdPercent = 80) {
|
|
5848
5853
|
if (info.usagePercent === null)
|
|
5849
5854
|
return false;
|
|
5850
5855
|
return info.usagePercent >= thresholdPercent;
|
|
5851
5856
|
}
|
|
5857
|
+
function normalizeEndpoint(endpoint) {
|
|
5858
|
+
if (!endpoint || !endpoint.includes("/"))
|
|
5859
|
+
return endpoint;
|
|
5860
|
+
return endpoint.replace(/\/[A-Z][A-Z0-9]+-\d+/g, "/{key}").replace(/\/\d+/g, "/{id}").replace(/\/repos\/[^/]+\/[^/]+/, "/repos/{owner}/{repo}");
|
|
5861
|
+
}
|
|
5852
5862
|
function buildRateLimitLogEntry(integration, endpoint, info, wasThrottled = false) {
|
|
5853
5863
|
return {
|
|
5854
5864
|
type: wasThrottled ? "RATE_LIMIT_ERROR" : "RATE_LIMIT",
|
|
@@ -6119,16 +6129,17 @@ var ConfluenceApi = class {
|
|
|
6119
6129
|
body: options.body ? JSON.stringify(options.body) : void 0
|
|
6120
6130
|
});
|
|
6121
6131
|
const rateLimitInfo = parseRateLimitHeaders(response.headers);
|
|
6122
|
-
if (rateLimitInfo
|
|
6132
|
+
if (hasRateLimitInfo(rateLimitInfo)) {
|
|
6123
6133
|
const logEntry = buildRateLimitLogEntry("confluence", path, rateLimitInfo);
|
|
6124
6134
|
console.error(JSON.stringify(logEntry));
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
|
-
|
|
6135
|
+
if (isNearLimit(rateLimitInfo)) {
|
|
6136
|
+
console.error(`[Confluence] Rate limit warning: ${rateLimitInfo.usagePercent}% used (${rateLimitInfo.remaining}/${rateLimitInfo.limit} remaining)`);
|
|
6137
|
+
}
|
|
6128
6138
|
}
|
|
6129
6139
|
if (response.status === 429 && (options._retryCount ?? 0) < 1) {
|
|
6130
6140
|
const retryAfterMs = rateLimitInfo.retryAfterMs ?? 5e3;
|
|
6131
|
-
const
|
|
6141
|
+
const jitterMs = Math.floor(Math.random() * 1e3);
|
|
6142
|
+
const delayMs = Math.min(retryAfterMs + jitterMs, 1e4);
|
|
6132
6143
|
const logEntry = buildRateLimitLogEntry("confluence", path, rateLimitInfo, true);
|
|
6133
6144
|
console.error(JSON.stringify(logEntry));
|
|
6134
6145
|
console.error(`[Confluence] Rate limited on ${path}, retrying after ${delayMs}ms`);
|
|
@@ -8338,16 +8349,17 @@ var JiraApi = class {
|
|
|
8338
8349
|
body: options.body ? JSON.stringify(options.body) : void 0
|
|
8339
8350
|
});
|
|
8340
8351
|
const rateLimitInfo = parseRateLimitHeaders(response.headers);
|
|
8341
|
-
if (rateLimitInfo
|
|
8352
|
+
if (hasRateLimitInfo(rateLimitInfo)) {
|
|
8342
8353
|
const logEntry = buildRateLimitLogEntry("jira", path, rateLimitInfo);
|
|
8343
8354
|
console.error(JSON.stringify(logEntry));
|
|
8344
|
-
|
|
8345
|
-
|
|
8346
|
-
|
|
8355
|
+
if (isNearLimit(rateLimitInfo)) {
|
|
8356
|
+
console.error(`[Jira] Rate limit warning: ${rateLimitInfo.usagePercent}% used (${rateLimitInfo.remaining}/${rateLimitInfo.limit} remaining)`);
|
|
8357
|
+
}
|
|
8347
8358
|
}
|
|
8348
8359
|
if (response.status === 429 && (options._retryCount ?? 0) < 1) {
|
|
8349
8360
|
const retryAfterMs = rateLimitInfo.retryAfterMs ?? 5e3;
|
|
8350
|
-
const
|
|
8361
|
+
const jitterMs = Math.floor(Math.random() * 1e3);
|
|
8362
|
+
const delayMs = Math.min(retryAfterMs + jitterMs, 1e4);
|
|
8351
8363
|
const logEntry = buildRateLimitLogEntry("jira", path, rateLimitInfo, true);
|
|
8352
8364
|
console.error(JSON.stringify(logEntry));
|
|
8353
8365
|
console.error(`[Jira] Rate limited on ${path}, retrying after ${delayMs}ms`);
|
|
@@ -10429,6 +10441,7 @@ export {
|
|
|
10429
10441
|
shareableDocumentSchema,
|
|
10430
10442
|
DefaultLLMParams,
|
|
10431
10443
|
CollectionType,
|
|
10444
|
+
ROTATABLE_INTEGRATIONS,
|
|
10432
10445
|
ApiKeyScope,
|
|
10433
10446
|
ApiKeyStatus,
|
|
10434
10447
|
MementoTier,
|
|
@@ -10705,8 +10718,11 @@ export {
|
|
|
10705
10718
|
extractSnippetMeta,
|
|
10706
10719
|
searchSchema,
|
|
10707
10720
|
LinkedInApi,
|
|
10721
|
+
RATE_LIMIT_INTEGRATIONS,
|
|
10708
10722
|
parseRateLimitHeaders,
|
|
10723
|
+
hasRateLimitInfo,
|
|
10709
10724
|
isNearLimit,
|
|
10725
|
+
normalizeEndpoint,
|
|
10710
10726
|
buildRateLimitLogEntry,
|
|
10711
10727
|
RESTRICTION_OPERATIONS,
|
|
10712
10728
|
RESTRICTION_SUBJECT_TYPES,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
dayjsConfig_default,
|
|
20
20
|
extractSnippetMeta,
|
|
21
21
|
settingsMap
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-OCFOJXLA.js";
|
|
23
23
|
|
|
24
24
|
// ../../b4m-core/packages/utils/dist/src/storage/S3Storage.js
|
|
25
25
|
import { S3Client, PutObjectCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand } from "@aws-sdk/client-s3";
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getOpenWeatherKey,
|
|
5
5
|
getSerperKey,
|
|
6
6
|
getWolframAlphaKey
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-J3YSVA6W.js";
|
|
8
8
|
import {
|
|
9
9
|
BFLImageService,
|
|
10
10
|
BaseStorage,
|
|
@@ -16,14 +16,14 @@ import {
|
|
|
16
16
|
OpenAIBackend,
|
|
17
17
|
OpenAIImageService,
|
|
18
18
|
XAIImageService
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-QCDYXXSD.js";
|
|
20
20
|
import {
|
|
21
21
|
Logger
|
|
22
22
|
} from "./chunk-PFBYGCOW.js";
|
|
23
23
|
import {
|
|
24
24
|
ConfigStore,
|
|
25
25
|
logger
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-HJVFUXVX.js";
|
|
27
27
|
import {
|
|
28
28
|
AiEvents,
|
|
29
29
|
ApiKeyEvents,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
getMcpProviderMetadata,
|
|
81
81
|
getViewById,
|
|
82
82
|
resolveNavigationIntents
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-OCFOJXLA.js";
|
|
84
84
|
|
|
85
85
|
// src/utils/fileSearch.ts
|
|
86
86
|
import * as fs from "fs";
|
|
@@ -8732,7 +8732,7 @@ var knowledgeBaseSearchTool = {
|
|
|
8732
8732
|
toolFn: async (value) => {
|
|
8733
8733
|
const params = value;
|
|
8734
8734
|
const { query, tags, file_type, max_results = 5 } = params;
|
|
8735
|
-
context.logger.log("\u{1F4DA} Knowledge Base Search:
|
|
8735
|
+
context.logger.log("\u{1F4DA} Knowledge Base Search: userId:", context.userId, "query:", query, "tags:", tags);
|
|
8736
8736
|
if (!context.db.fabfiles) {
|
|
8737
8737
|
context.logger.error("\u274C Knowledge Base Search: fabfiles repository not available");
|
|
8738
8738
|
return "Knowledge base search is not available at this time.";
|
|
@@ -8758,7 +8758,7 @@ var knowledgeBaseSearchTool = {
|
|
|
8758
8758
|
userGroups: context.user.groups || []
|
|
8759
8759
|
// Pass user's groups for org-level sharing
|
|
8760
8760
|
});
|
|
8761
|
-
context.logger.log("\u{1F4DA} Knowledge Base Search: Found", searchResults.data.length, "results");
|
|
8761
|
+
context.logger.log("\u{1F4DA} Knowledge Base Search: Found", searchResults.data.length, "of", searchResults.total, "results. Files:", searchResults.data.map((f) => f.fileName));
|
|
8762
8762
|
return formatSearchResults(searchResults.data);
|
|
8763
8763
|
} catch (error) {
|
|
8764
8764
|
context.logger.error("\u274C Knowledge Base Search: Error during search:", error);
|
|
@@ -8778,7 +8778,7 @@ var knowledgeBaseSearchTool = {
|
|
|
8778
8778
|
tags: {
|
|
8779
8779
|
type: "array",
|
|
8780
8780
|
items: { type: "string" },
|
|
8781
|
-
description: 'Optional: filter results by tag names. Supports partial matching. For optimization docs, use tags like "opti:family:scheduling", "opti:QUBO", "opti:solver:highs",
|
|
8781
|
+
description: 'Optional: filter results by tag names. Supports partial matching. For optimization docs, use tags like "opti:family:scheduling", "opti:QUBO", "opti:solver:highs". For IonQ sales intelligence, use tags like "ionq:vertical:pharma", "ionq:competitor:ibm", "ionq:type:product-specs", "ionq:stage:discovery", "ionq:offering:forte". Any matching tag qualifies the file.'
|
|
8782
8782
|
},
|
|
8783
8783
|
file_type: {
|
|
8784
8784
|
type: "string",
|
|
@@ -8891,7 +8891,7 @@ Chunks: ${chunks.length} | Characters: ${charLabel}
|
|
|
8891
8891
|
tags: {
|
|
8892
8892
|
type: "array",
|
|
8893
8893
|
items: { type: "string" },
|
|
8894
|
-
description: 'Filter documents by tags. For optimization docs, use tags like "opti:family:scheduling", "opti:solver:highs",
|
|
8894
|
+
description: 'Filter documents by tags. For optimization docs, use tags like "opti:family:scheduling", "opti:solver:highs". For IonQ sales intelligence, use tags like "ionq:vertical:pharma", "ionq:competitor:ibm", "ionq:content:product-specs", "ionq:offering:forte".'
|
|
8895
8895
|
},
|
|
8896
8896
|
query: {
|
|
8897
8897
|
type: "string",
|
|
@@ -15237,15 +15237,17 @@ var MCPClient = class {
|
|
|
15237
15237
|
customCommand;
|
|
15238
15238
|
customArgs;
|
|
15239
15239
|
suppressStderr;
|
|
15240
|
+
onStderrLine;
|
|
15240
15241
|
tools = [];
|
|
15241
15242
|
serverName;
|
|
15242
|
-
constructor({ envVariables, name, selectedRepositories, command, args, suppressStderr = false }) {
|
|
15243
|
+
constructor({ envVariables, name, selectedRepositories, command, args, suppressStderr = false, onStderrLine }) {
|
|
15243
15244
|
this.mcp = new Client2({ name: "mcp-client-cli", version: "1.0.0" });
|
|
15244
15245
|
this.envVariables = [...envVariables];
|
|
15245
15246
|
this.serverName = name;
|
|
15246
15247
|
this.customCommand = command;
|
|
15247
15248
|
this.customArgs = args;
|
|
15248
15249
|
this.suppressStderr = suppressStderr;
|
|
15250
|
+
this.onStderrLine = onStderrLine;
|
|
15249
15251
|
if (name === "github" && selectedRepositories) {
|
|
15250
15252
|
const reposJson = JSON.stringify(selectedRepositories);
|
|
15251
15253
|
this.envVariables.push({
|
|
@@ -15291,6 +15293,7 @@ var MCPClient = class {
|
|
|
15291
15293
|
args = [serverScriptPath];
|
|
15292
15294
|
console.log(`[MCP] Using server: ${this.serverName} at ${serverScriptPath}`);
|
|
15293
15295
|
}
|
|
15296
|
+
const stderrMode = this.suppressStderr ? "ignore" : this.onStderrLine ? "pipe" : void 0;
|
|
15294
15297
|
const transportConfig = {
|
|
15295
15298
|
command,
|
|
15296
15299
|
args,
|
|
@@ -15298,14 +15301,16 @@ var MCPClient = class {
|
|
|
15298
15301
|
...Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] !== void 0)),
|
|
15299
15302
|
...envVarsObject
|
|
15300
15303
|
},
|
|
15301
|
-
|
|
15302
|
-
...this.suppressStderr && { stderr: "ignore" }
|
|
15304
|
+
...stderrMode && { stderr: stderrMode }
|
|
15303
15305
|
};
|
|
15304
15306
|
this.transport = new StdioClientTransport(transportConfig);
|
|
15305
15307
|
this.transport.onerror = (error) => {
|
|
15306
15308
|
console.error(`[MCP] Transport error for ${this.serverName}:`, error);
|
|
15307
15309
|
};
|
|
15308
15310
|
await this.mcp.connect(this.transport);
|
|
15311
|
+
if (this.onStderrLine && this.transport.stderr) {
|
|
15312
|
+
this.readStderr(this.transport.stderr);
|
|
15313
|
+
}
|
|
15309
15314
|
await new Promise((resolve3) => setTimeout(resolve3, 100));
|
|
15310
15315
|
const toolsResult = await this.mcp.listTools();
|
|
15311
15316
|
this.tools = toolsResult.tools.map((tool) => {
|
|
@@ -15327,6 +15332,30 @@ var MCPClient = class {
|
|
|
15327
15332
|
throw e;
|
|
15328
15333
|
}
|
|
15329
15334
|
}
|
|
15335
|
+
/**
|
|
15336
|
+
* Read lines from the child process stderr stream and dispatch to the callback.
|
|
15337
|
+
* Uses Node.js stream events; errors are silently caught (stream closes on disconnect).
|
|
15338
|
+
*/
|
|
15339
|
+
readStderr(stream) {
|
|
15340
|
+
let buffer = "";
|
|
15341
|
+
stream.setEncoding("utf8");
|
|
15342
|
+
stream.on("data", (chunk) => {
|
|
15343
|
+
buffer += chunk;
|
|
15344
|
+
const lines = buffer.split("\n");
|
|
15345
|
+
buffer = lines.pop() || "";
|
|
15346
|
+
for (const line of lines) {
|
|
15347
|
+
const trimmed = line.trim();
|
|
15348
|
+
if (trimmed)
|
|
15349
|
+
this.onStderrLine?.(trimmed);
|
|
15350
|
+
}
|
|
15351
|
+
});
|
|
15352
|
+
stream.on("end", () => {
|
|
15353
|
+
if (buffer.trim())
|
|
15354
|
+
this.onStderrLine?.(buffer.trim());
|
|
15355
|
+
});
|
|
15356
|
+
stream.on("error", () => {
|
|
15357
|
+
});
|
|
15358
|
+
}
|
|
15330
15359
|
async callTool(toolName, toolArgs) {
|
|
15331
15360
|
try {
|
|
15332
15361
|
const args = toolArgs && typeof toolArgs === "object" ? toolArgs : void 0;
|
|
@@ -36,20 +36,20 @@ import {
|
|
|
36
36
|
isReadOnlyTool,
|
|
37
37
|
loadContextFiles,
|
|
38
38
|
setWebSocketToolExecutor
|
|
39
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-TVO7HQYO.js";
|
|
40
40
|
import "../chunk-BDQBOLYG.js";
|
|
41
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-J3YSVA6W.js";
|
|
42
42
|
import "../chunk-GQGOWACU.js";
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-AU7OYPU4.js";
|
|
44
|
+
import "../chunk-5APQNY55.js";
|
|
45
|
+
import "../chunk-QCDYXXSD.js";
|
|
46
46
|
import "../chunk-PFBYGCOW.js";
|
|
47
47
|
import "../chunk-BPFEGDC7.js";
|
|
48
48
|
import {
|
|
49
49
|
ConfigStore,
|
|
50
50
|
logger
|
|
51
|
-
} from "../chunk-
|
|
52
|
-
import "../chunk-
|
|
51
|
+
} from "../chunk-HJVFUXVX.js";
|
|
52
|
+
import "../chunk-OCFOJXLA.js";
|
|
53
53
|
import {
|
|
54
54
|
DEFAULT_SANDBOX_CONFIG
|
|
55
55
|
} from "../chunk-4BIBE3J7.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createFabFile,
|
|
4
4
|
createFabFileSchema
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-5APQNY55.js";
|
|
6
|
+
import "./chunk-QCDYXXSD.js";
|
|
7
7
|
import "./chunk-PFBYGCOW.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OCFOJXLA.js";
|
|
9
9
|
export {
|
|
10
10
|
createFabFile,
|
|
11
11
|
createFabFileSchema
|
package/dist/index.js
CHANGED
|
@@ -46,23 +46,23 @@ import {
|
|
|
46
46
|
setWebSocketToolExecutor,
|
|
47
47
|
substituteArguments,
|
|
48
48
|
warmFileCache
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-TVO7HQYO.js";
|
|
50
50
|
import "./chunk-BDQBOLYG.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-J3YSVA6W.js";
|
|
52
52
|
import "./chunk-GQGOWACU.js";
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-AU7OYPU4.js";
|
|
54
|
+
import "./chunk-5APQNY55.js";
|
|
55
|
+
import "./chunk-QCDYXXSD.js";
|
|
56
56
|
import "./chunk-PFBYGCOW.js";
|
|
57
57
|
import "./chunk-BPFEGDC7.js";
|
|
58
58
|
import {
|
|
59
59
|
ConfigStore,
|
|
60
60
|
logger
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-HJVFUXVX.js";
|
|
62
62
|
import {
|
|
63
63
|
checkForUpdate,
|
|
64
64
|
package_default
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-NHE3MDUJ.js";
|
|
66
66
|
import {
|
|
67
67
|
selectActiveBackgroundAgents,
|
|
68
68
|
useCliStore
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
import {
|
|
71
71
|
CREDIT_DEDUCT_TRANSACTION_TYPES,
|
|
72
72
|
ChatModels
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-OCFOJXLA.js";
|
|
74
74
|
import "./chunk-4BIBE3J7.js";
|
|
75
75
|
|
|
76
76
|
// src/index.tsx
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
findMostSimilarMemento,
|
|
4
4
|
getRelevantMementos
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-J3YSVA6W.js";
|
|
6
|
+
import "./chunk-QCDYXXSD.js";
|
|
7
7
|
import "./chunk-PFBYGCOW.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OCFOJXLA.js";
|
|
9
9
|
export {
|
|
10
10
|
findMostSimilarMemento,
|
|
11
11
|
getRelevantMementos
|
|
@@ -244,11 +244,13 @@ import {
|
|
|
244
244
|
QuestResourceSchema,
|
|
245
245
|
QuestSchema,
|
|
246
246
|
QuestStatusSchema,
|
|
247
|
+
RATE_LIMIT_INTEGRATIONS,
|
|
247
248
|
REASONING_EFFORT_DESCRIPTIONS,
|
|
248
249
|
REASONING_EFFORT_LABELS,
|
|
249
250
|
REASONING_SUPPORTED_MODELS,
|
|
250
251
|
RESTRICTION_OPERATIONS,
|
|
251
252
|
RESTRICTION_SUBJECT_TYPES,
|
|
253
|
+
ROTATABLE_INTEGRATIONS,
|
|
252
254
|
RapidReplyFallbackBehaviors,
|
|
253
255
|
RapidReplyResponseStylesCommon,
|
|
254
256
|
RapidReplySettingsSchema,
|
|
@@ -400,6 +402,7 @@ import {
|
|
|
400
402
|
getVisibilityLevel,
|
|
401
403
|
getWebsiteUrl,
|
|
402
404
|
groupShareSchema,
|
|
405
|
+
hasRateLimitInfo,
|
|
403
406
|
isArtifact,
|
|
404
407
|
isCommentWebhookEvent,
|
|
405
408
|
isCreditHolder,
|
|
@@ -418,6 +421,7 @@ import {
|
|
|
418
421
|
isValidIssueKey,
|
|
419
422
|
matchesSearchQuery,
|
|
420
423
|
mergeArtifactMetadata,
|
|
424
|
+
normalizeEndpoint,
|
|
421
425
|
parallelLimit,
|
|
422
426
|
parseRateLimitHeaders,
|
|
423
427
|
passwordSchema,
|
|
@@ -458,7 +462,7 @@ import {
|
|
|
458
462
|
validateReactArtifactV2,
|
|
459
463
|
validateSvgArtifactV2,
|
|
460
464
|
wikiMarkupToAdf
|
|
461
|
-
} from "./chunk-
|
|
465
|
+
} from "./chunk-OCFOJXLA.js";
|
|
462
466
|
export {
|
|
463
467
|
ALL_IMAGE_MODELS,
|
|
464
468
|
ALL_IMAGE_SIZES,
|
|
@@ -705,11 +709,13 @@ export {
|
|
|
705
709
|
QuestResourceSchema,
|
|
706
710
|
QuestSchema,
|
|
707
711
|
QuestStatusSchema,
|
|
712
|
+
RATE_LIMIT_INTEGRATIONS,
|
|
708
713
|
REASONING_EFFORT_DESCRIPTIONS,
|
|
709
714
|
REASONING_EFFORT_LABELS,
|
|
710
715
|
REASONING_SUPPORTED_MODELS,
|
|
711
716
|
RESTRICTION_OPERATIONS,
|
|
712
717
|
RESTRICTION_SUBJECT_TYPES,
|
|
718
|
+
ROTATABLE_INTEGRATIONS,
|
|
713
719
|
RapidReplyFallbackBehaviors,
|
|
714
720
|
RapidReplyResponseStylesCommon,
|
|
715
721
|
RapidReplySettingsSchema,
|
|
@@ -862,6 +868,7 @@ export {
|
|
|
862
868
|
getVisibilityLevel,
|
|
863
869
|
getWebsiteUrl,
|
|
864
870
|
groupShareSchema,
|
|
871
|
+
hasRateLimitInfo,
|
|
865
872
|
isArtifact,
|
|
866
873
|
isCommentWebhookEvent,
|
|
867
874
|
isCreditHolder,
|
|
@@ -880,6 +887,7 @@ export {
|
|
|
880
887
|
isValidIssueKey,
|
|
881
888
|
matchesSearchQuery,
|
|
882
889
|
mergeArtifactMetadata,
|
|
890
|
+
normalizeEndpoint,
|
|
883
891
|
parallelLimit,
|
|
884
892
|
parseRateLimitHeaders,
|
|
885
893
|
passwordSchema,
|
|
@@ -139,7 +139,7 @@ import {
|
|
|
139
139
|
validateUrlForFetch,
|
|
140
140
|
warmUpSettingsCache,
|
|
141
141
|
withRetry
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-QCDYXXSD.js";
|
|
143
143
|
import {
|
|
144
144
|
Logger,
|
|
145
145
|
NotificationDeduplicator,
|
|
@@ -152,7 +152,7 @@ import {
|
|
|
152
152
|
buildRateLimitLogEntry,
|
|
153
153
|
isNearLimit,
|
|
154
154
|
parseRateLimitHeaders
|
|
155
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-OCFOJXLA.js";
|
|
156
156
|
export {
|
|
157
157
|
AIVideoService,
|
|
158
158
|
AWSBackend,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SubtractCreditsSchema,
|
|
4
4
|
subtractCredits
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-AU7OYPU4.js";
|
|
6
|
+
import "./chunk-QCDYXXSD.js";
|
|
7
7
|
import "./chunk-PFBYGCOW.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OCFOJXLA.js";
|
|
9
9
|
export {
|
|
10
10
|
SubtractCreditsSchema,
|
|
11
11
|
subtractCredits
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bike4mind/cli",
|
|
3
|
-
"version": "0.2.38-
|
|
3
|
+
"version": "0.2.38-prod.20159+a4ddc8821",
|
|
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.58.1-
|
|
118
|
-
"@bike4mind/mcp": "1.32.6-
|
|
119
|
-
"@bike4mind/services": "2.54.2-
|
|
120
|
-
"@bike4mind/utils": "2.11.1-
|
|
117
|
+
"@bike4mind/common": "2.58.1-prod.20159+a4ddc8821",
|
|
118
|
+
"@bike4mind/mcp": "1.32.6-prod.20159+a4ddc8821",
|
|
119
|
+
"@bike4mind/services": "2.54.2-prod.20159+a4ddc8821",
|
|
120
|
+
"@bike4mind/utils": "2.11.1-prod.20159+a4ddc8821",
|
|
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": "a4ddc8821374a175fb2bdb871b177140d2804b09"
|
|
139
139
|
}
|