@bike4mind/cli 0.2.15 → 0.2.16-block-missing-tool-result.17608
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-MMUOUPI2.js +0 -0
- package/dist/artifactExtractor-EEX5G4EB.js +0 -0
- package/dist/{chunk-I3CPL4SJ.js → chunk-32MIJDKQ.js} +1 -1
- package/dist/chunk-BDQBOLYG.js +0 -0
- package/dist/chunk-BPFEGDC7.js +0 -0
- package/dist/chunk-FFJX3FF3.js +0 -0
- package/dist/{chunk-O7G3G3FD.js → chunk-HG7OEWJG.js} +1 -1
- package/dist/{chunk-ECSELHYP.js → chunk-ISY2LX2J.js} +1 -1
- package/dist/chunk-LL5J3SVB.js +0 -0
- package/dist/chunk-OCYRD7D6.js +0 -0
- package/dist/{chunk-M2CSCYOY.js → chunk-W2GB4FA6.js} +139 -31
- package/dist/commands/mcpCommand.js +0 -0
- package/dist/{create-2DJZDMFQ.js → create-7OZOVEBU.js} +2 -2
- package/dist/formatConverter-5QEJDW24.js +0 -0
- package/dist/index.js +12 -11
- package/dist/llmMarkdownGenerator-SRA436DB.js +0 -0
- package/dist/markdownGenerator-E7F5GFPO.js +0 -0
- package/dist/{mementoService-2WXW5352.js → mementoService-DFXPWRSN.js} +2 -2
- package/dist/notificationDeduplicator-UTHJHMSZ.js +0 -0
- package/dist/src-3MJEHI5W.js +0 -0
- package/dist/{src-K45DVAW4.js → src-OJWLKVVE.js} +5 -1
- package/dist/{subtractCredits-OHI7VBH3.js → subtractCredits-OJ4ZNF7L.js} +2 -2
- package/dist/utils-JCHWDM4Z.js +0 -0
- package/package.json +19 -17
|
File without changes
|
|
File without changes
|
package/dist/chunk-BDQBOLYG.js
CHANGED
|
File without changes
|
package/dist/chunk-BPFEGDC7.js
CHANGED
|
File without changes
|
package/dist/chunk-FFJX3FF3.js
CHANGED
|
File without changes
|
package/dist/chunk-LL5J3SVB.js
CHANGED
|
File without changes
|
package/dist/chunk-OCYRD7D6.js
CHANGED
|
File without changes
|
|
@@ -6515,30 +6515,60 @@ async function buildAndSortMessages(previousMessages, fabMessages, userPrompt, m
|
|
|
6515
6515
|
}
|
|
6516
6516
|
}
|
|
6517
6517
|
const imageMessages = fabMessages.filter((message) => message.role === "user" && Array.isArray(message.content) && message.content.some((obj) => obj.type.startsWith("image")));
|
|
6518
|
-
const
|
|
6519
|
-
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
|
|
6524
|
-
|
|
6525
|
-
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6518
|
+
const lastHistoryMessage = processedPreviousMessages[processedPreviousMessages.length - 1];
|
|
6519
|
+
const historyEndsWithToolUse = lastHistoryMessage?.role === "assistant" && Array.isArray(lastHistoryMessage.content) && lastHistoryMessage.content.some((block) => block.type === "tool_use");
|
|
6520
|
+
const promptHasToolResult = userPrompt.some((msg) => msg.role === "user" && Array.isArray(msg.content) && msg.content.some((block) => block.type === "tool_result"));
|
|
6521
|
+
let messages;
|
|
6522
|
+
if (historyEndsWithToolUse && promptHasToolResult) {
|
|
6523
|
+
messages = [
|
|
6524
|
+
...systemMessages,
|
|
6525
|
+
// System messages go first for instruction
|
|
6526
|
+
...processedPreviousMessages,
|
|
6527
|
+
// previous message context
|
|
6528
|
+
...userPrompt,
|
|
6529
|
+
// Tool result must follow tool use immediately
|
|
6530
|
+
...imageMessages,
|
|
6531
|
+
// Include all image messages
|
|
6532
|
+
...processedContentMessages
|
|
6533
|
+
// fab file content (non-image messages)
|
|
6534
|
+
];
|
|
6535
|
+
} else {
|
|
6536
|
+
messages = [
|
|
6536
6537
|
...systemMessages,
|
|
6538
|
+
// System messages go first for instruction
|
|
6537
6539
|
...processedPreviousMessages,
|
|
6540
|
+
// previous message context
|
|
6538
6541
|
...imageMessages,
|
|
6539
|
-
|
|
6542
|
+
// Include all image messages
|
|
6543
|
+
...processedContentMessages,
|
|
6544
|
+
// fab file content (non-image messages)
|
|
6540
6545
|
...userPrompt
|
|
6546
|
+
// Spread the userPrompt array into the messages array
|
|
6541
6547
|
];
|
|
6548
|
+
}
|
|
6549
|
+
const finalTokenCount = await calculateTotalTokenLength(messages, { estimateOnly: false, tokenizer });
|
|
6550
|
+
if (finalTokenCount > maxInputTokens) {
|
|
6551
|
+
logger.warn(`\u26A0\uFE0F Final message token count (${finalTokenCount}) exceeds maxInputTokens (${maxInputTokens}). Truncating messages.`);
|
|
6552
|
+
const excessTokens = finalTokenCount - maxInputTokens;
|
|
6553
|
+
const reducedContentMessagesResult = processMessages(processedContentMessages, Math.max(0, await calculateTotalTokenLength(processedContentMessages, { estimateOnly: false, tokenizer }) - excessTokens));
|
|
6554
|
+
let truncatedMessages;
|
|
6555
|
+
if (historyEndsWithToolUse && promptHasToolResult) {
|
|
6556
|
+
truncatedMessages = [
|
|
6557
|
+
...systemMessages,
|
|
6558
|
+
...processedPreviousMessages,
|
|
6559
|
+
...userPrompt,
|
|
6560
|
+
...imageMessages,
|
|
6561
|
+
...reducedContentMessagesResult.messages
|
|
6562
|
+
];
|
|
6563
|
+
} else {
|
|
6564
|
+
truncatedMessages = [
|
|
6565
|
+
...systemMessages,
|
|
6566
|
+
...processedPreviousMessages,
|
|
6567
|
+
...imageMessages,
|
|
6568
|
+
...reducedContentMessagesResult.messages,
|
|
6569
|
+
...userPrompt
|
|
6570
|
+
];
|
|
6571
|
+
}
|
|
6542
6572
|
return ensureToolPairingIntegrity(truncatedMessages, logger);
|
|
6543
6573
|
}
|
|
6544
6574
|
const VERBOSE_MESSAGE_BUILDING = process.env.VERBOSE_MESSAGE_BUILDING === "true";
|
|
@@ -8732,8 +8762,20 @@ var QuestMaster = class {
|
|
|
8732
8762
|
* @param prompt - The user's request to break down into quests
|
|
8733
8763
|
* @returns The parsed quest plan result
|
|
8734
8764
|
*/
|
|
8735
|
-
async createQuestPlanWithFunctionCalling(model, prompt, retryCount = 0) {
|
|
8765
|
+
async createQuestPlanWithFunctionCalling(model, prompt, planOptions = {}, retryCount = 0) {
|
|
8736
8766
|
const MAX_RETRIES = 2;
|
|
8767
|
+
const { history = [] } = planOptions;
|
|
8768
|
+
const hasHistory = history.length > 0;
|
|
8769
|
+
const historyContext = hasHistory ? `
|
|
8770
|
+
|
|
8771
|
+
CONVERSATION CONTEXT:
|
|
8772
|
+
You have access to the user's conversation history. Use this context to:
|
|
8773
|
+
- Understand what the user has already discussed or learned
|
|
8774
|
+
- Reference previous decisions or preferences mentioned
|
|
8775
|
+
- Build upon prior context when creating quests
|
|
8776
|
+
- Avoid suggesting steps the user has already completed
|
|
8777
|
+
|
|
8778
|
+
The conversation history is included before the user's current request.` : "";
|
|
8737
8779
|
const messages = [
|
|
8738
8780
|
{
|
|
8739
8781
|
role: "system",
|
|
@@ -8759,8 +8801,10 @@ TITLE REQUIREMENTS (CRITICAL):
|
|
|
8759
8801
|
HANDLING VERBOSE INPUT:
|
|
8760
8802
|
- When given detailed or verbose input, extract the core objective and key requirements
|
|
8761
8803
|
- Do not try to incorporate every detail verbatim - summarize and structure appropriately
|
|
8762
|
-
- Focus on actionable steps rather than preserving all user context`
|
|
8804
|
+
- Focus on actionable steps rather than preserving all user context${historyContext}`
|
|
8763
8805
|
},
|
|
8806
|
+
// Include conversation history BEFORE the current user request
|
|
8807
|
+
...history,
|
|
8764
8808
|
{ role: "user", content: prompt }
|
|
8765
8809
|
];
|
|
8766
8810
|
const toolDef = {
|
|
@@ -8768,7 +8812,7 @@ HANDLING VERBOSE INPUT:
|
|
|
8768
8812
|
// Not executed, just captured
|
|
8769
8813
|
toolSchema: createQuestPlanToolSchema
|
|
8770
8814
|
};
|
|
8771
|
-
const
|
|
8815
|
+
const completionOptions = {
|
|
8772
8816
|
temperature: retryCount > 0 ? 0.5 : 0.7,
|
|
8773
8817
|
// Lower temperature for structured JSON outputs; even lower on retries
|
|
8774
8818
|
n: 1,
|
|
@@ -8784,7 +8828,7 @@ HANDLING VERBOSE INPUT:
|
|
|
8784
8828
|
let functionResult = null;
|
|
8785
8829
|
let lastError = null;
|
|
8786
8830
|
try {
|
|
8787
|
-
await this.llm.complete(model, messages,
|
|
8831
|
+
await this.llm.complete(model, messages, completionOptions, async (text, completionInfo) => {
|
|
8788
8832
|
if (completionInfo?.toolsUsed?.length) {
|
|
8789
8833
|
const toolCall = completionInfo.toolsUsed[0];
|
|
8790
8834
|
if (toolCall.name === "create_quest_plan" && toolCall.arguments) {
|
|
@@ -8805,7 +8849,7 @@ HANDLING VERBOSE INPUT:
|
|
|
8805
8849
|
if (!functionResult) {
|
|
8806
8850
|
if (retryCount < MAX_RETRIES) {
|
|
8807
8851
|
this.logger.warn(`GPT-5 did not return function call, retrying (attempt ${retryCount + 1}/${MAX_RETRIES})...`);
|
|
8808
|
-
return this.createQuestPlanWithFunctionCalling(model, prompt, retryCount + 1);
|
|
8852
|
+
return this.createQuestPlanWithFunctionCalling(model, prompt, planOptions, retryCount + 1);
|
|
8809
8853
|
}
|
|
8810
8854
|
throw lastError || new Error("GPT-5 did not call create_quest_plan function after retries");
|
|
8811
8855
|
}
|
|
@@ -8814,7 +8858,7 @@ HANDLING VERBOSE INPUT:
|
|
|
8814
8858
|
if (questsWithoutSubquests.length > 0) {
|
|
8815
8859
|
if (retryCount < MAX_RETRIES) {
|
|
8816
8860
|
this.logger.warn(`Some quests missing subquests: ${questsWithoutSubquests.map((q) => q.id).join(", ")}, retrying...`);
|
|
8817
|
-
return this.createQuestPlanWithFunctionCalling(model, prompt, retryCount + 1);
|
|
8861
|
+
return this.createQuestPlanWithFunctionCalling(model, prompt, planOptions, retryCount + 1);
|
|
8818
8862
|
} else {
|
|
8819
8863
|
this.logger.warn(`Returning quest plan with ${questsWithoutSubquests.length} quests missing subquests after max retries (${MAX_RETRIES}): ${questsWithoutSubquests.map((q) => q.id).join(", ")}`);
|
|
8820
8864
|
}
|
|
@@ -8826,22 +8870,35 @@ HANDLING VERBOSE INPUT:
|
|
|
8826
8870
|
});
|
|
8827
8871
|
return result;
|
|
8828
8872
|
}
|
|
8829
|
-
async createQuestPlan(model, prompt) {
|
|
8873
|
+
async createQuestPlan(model, prompt, options = {}) {
|
|
8830
8874
|
try {
|
|
8831
8875
|
if (!this.quest) {
|
|
8832
8876
|
throw new Error("No quest context available");
|
|
8833
8877
|
}
|
|
8878
|
+
const { history = [] } = options;
|
|
8879
|
+
this.logger.log(`Creating quest plan with ${history.length} history messages for context`);
|
|
8834
8880
|
await this.onStatusUpdate(this.quest, "Creating quest plan...");
|
|
8835
8881
|
if (isGPT5ModelWithToolSupport(model)) {
|
|
8836
8882
|
this.logger.log(`Using function calling approach for GPT-5 model: ${model}`);
|
|
8837
8883
|
try {
|
|
8838
|
-
const result = await this.createQuestPlanWithFunctionCalling(model, prompt);
|
|
8884
|
+
const result = await this.createQuestPlanWithFunctionCalling(model, prompt, options);
|
|
8839
8885
|
await this.processQuestPlan(result);
|
|
8840
8886
|
return;
|
|
8841
8887
|
} catch (functionCallError) {
|
|
8842
8888
|
this.logger.error("Function calling failed, falling back to HTML approach:", functionCallError);
|
|
8843
8889
|
}
|
|
8844
8890
|
}
|
|
8891
|
+
const hasHistory = history.length > 0;
|
|
8892
|
+
const historyContext = hasHistory ? `
|
|
8893
|
+
|
|
8894
|
+
CONVERSATION CONTEXT:
|
|
8895
|
+
You have access to the user's conversation history. Use this context to:
|
|
8896
|
+
- Understand what the user has already discussed or learned
|
|
8897
|
+
- Reference previous decisions or preferences mentioned
|
|
8898
|
+
- Build upon prior context when creating quests
|
|
8899
|
+
- Avoid suggesting steps the user has already completed
|
|
8900
|
+
|
|
8901
|
+
The conversation history is included before the user's current request.` : "";
|
|
8845
8902
|
const messages = [
|
|
8846
8903
|
{
|
|
8847
8904
|
role: "system",
|
|
@@ -8904,11 +8961,13 @@ Remember:
|
|
|
8904
8961
|
- Each quest and subquest must have a unique, descriptive ID
|
|
8905
8962
|
- Keep JSON properly formatted
|
|
8906
8963
|
- The client UI depends on this exact structure
|
|
8907
|
-
- Never return a response without proper subquests`
|
|
8964
|
+
- Never return a response without proper subquests${historyContext}`
|
|
8908
8965
|
},
|
|
8966
|
+
// Include conversation history BEFORE the current user request
|
|
8967
|
+
...history,
|
|
8909
8968
|
{ role: "user", content: prompt }
|
|
8910
8969
|
];
|
|
8911
|
-
const
|
|
8970
|
+
const completionOptions = {
|
|
8912
8971
|
temperature: 0.9,
|
|
8913
8972
|
n: 1,
|
|
8914
8973
|
stream: false
|
|
@@ -9007,7 +9066,7 @@ Remember:
|
|
|
9007
9066
|
return tryGenerateQuestPlan(retryMessages, retryOptions, retryCount + 1);
|
|
9008
9067
|
}
|
|
9009
9068
|
};
|
|
9010
|
-
return await tryGenerateQuestPlan(messages,
|
|
9069
|
+
return await tryGenerateQuestPlan(messages, completionOptions);
|
|
9011
9070
|
} catch (error) {
|
|
9012
9071
|
this.logger.error("Error in createQuestPlan:", error);
|
|
9013
9072
|
throw error;
|
|
@@ -10856,6 +10915,53 @@ async function withRetry(fn, options = {}) {
|
|
|
10856
10915
|
}
|
|
10857
10916
|
}
|
|
10858
10917
|
|
|
10918
|
+
// ../../b4m-core/packages/utils/dist/src/voiceHistory.js
|
|
10919
|
+
function truncateText(text, maxLength) {
|
|
10920
|
+
if (text.length <= maxLength)
|
|
10921
|
+
return text;
|
|
10922
|
+
return text.slice(0, maxLength - 3) + "...";
|
|
10923
|
+
}
|
|
10924
|
+
function formatMessage(role, content, maxChars) {
|
|
10925
|
+
const truncated = truncateText(content.trim(), maxChars);
|
|
10926
|
+
return `${role === "user" ? "User" : "Assistant"}: ${truncated}`;
|
|
10927
|
+
}
|
|
10928
|
+
function formatVoiceHistory(historyItems, options = {}) {
|
|
10929
|
+
const { maxChars = 3e3, recentMessageCount = 10, maxCharsPerMessage = 300 } = options;
|
|
10930
|
+
if (!historyItems || historyItems.length === 0) {
|
|
10931
|
+
return "";
|
|
10932
|
+
}
|
|
10933
|
+
const recentItems = historyItems.slice(-recentMessageCount);
|
|
10934
|
+
const lines = [
|
|
10935
|
+
"\n\nCONVERSATION CONTEXT:",
|
|
10936
|
+
"You are continuing a conversation with this user. Here is the recent chat history:",
|
|
10937
|
+
""
|
|
10938
|
+
];
|
|
10939
|
+
for (const item of recentItems) {
|
|
10940
|
+
if (item.prompt) {
|
|
10941
|
+
lines.push(formatMessage("user", item.prompt, maxCharsPerMessage));
|
|
10942
|
+
}
|
|
10943
|
+
if (item.replies && Array.isArray(item.replies)) {
|
|
10944
|
+
const validReply = item.replies.find((reply) => !reply.trim().startsWith("<think>"));
|
|
10945
|
+
if (validReply) {
|
|
10946
|
+
lines.push(formatMessage("assistant", validReply, maxCharsPerMessage));
|
|
10947
|
+
}
|
|
10948
|
+
}
|
|
10949
|
+
}
|
|
10950
|
+
lines.push("");
|
|
10951
|
+
lines.push("Use this context to maintain continuity. Reference previous topics naturally when relevant.");
|
|
10952
|
+
let result = lines.join("\n");
|
|
10953
|
+
if (result.length > maxChars) {
|
|
10954
|
+
result = truncateText(result, maxChars);
|
|
10955
|
+
}
|
|
10956
|
+
return result;
|
|
10957
|
+
}
|
|
10958
|
+
function buildVoiceInstructions(baseInstructions, historyContext) {
|
|
10959
|
+
if (!historyContext) {
|
|
10960
|
+
return baseInstructions;
|
|
10961
|
+
}
|
|
10962
|
+
return `${baseInstructions}${historyContext}`;
|
|
10963
|
+
}
|
|
10964
|
+
|
|
10859
10965
|
export {
|
|
10860
10966
|
BaseStorage,
|
|
10861
10967
|
S3Storage,
|
|
@@ -10983,5 +11089,7 @@ export {
|
|
|
10983
11089
|
isRetryableError,
|
|
10984
11090
|
getRetryAfterMs,
|
|
10985
11091
|
calculateRetryDelay,
|
|
10986
|
-
withRetry
|
|
11092
|
+
withRetry,
|
|
11093
|
+
formatVoiceHistory,
|
|
11094
|
+
buildVoiceInstructions
|
|
10987
11095
|
};
|
|
File without changes
|
|
File without changes
|
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-ISY2LX2J.js";
|
|
8
8
|
import {
|
|
9
9
|
ConfigStore
|
|
10
10
|
} from "./chunk-FFJX3FF3.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-32MIJDKQ.js";
|
|
12
|
+
import "./chunk-HG7OEWJG.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-W2GB4FA6.js";
|
|
25
25
|
import {
|
|
26
26
|
AiEvents,
|
|
27
27
|
ApiKeyEvents,
|
|
@@ -11430,7 +11430,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
|
|
|
11430
11430
|
// package.json
|
|
11431
11431
|
var package_default = {
|
|
11432
11432
|
name: "@bike4mind/cli",
|
|
11433
|
-
version: "0.2.
|
|
11433
|
+
version: "0.2.16-block-missing-tool-result.17608+13b93034b",
|
|
11434
11434
|
type: "module",
|
|
11435
11435
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
11436
11436
|
license: "UNLICENSED",
|
|
@@ -11536,11 +11536,11 @@ var package_default = {
|
|
|
11536
11536
|
zustand: "^4.5.4"
|
|
11537
11537
|
},
|
|
11538
11538
|
devDependencies: {
|
|
11539
|
-
"@bike4mind/agents": "
|
|
11540
|
-
"@bike4mind/common": "
|
|
11541
|
-
"@bike4mind/mcp": "
|
|
11542
|
-
"@bike4mind/services": "
|
|
11543
|
-
"@bike4mind/utils": "
|
|
11539
|
+
"@bike4mind/agents": "0.1.0",
|
|
11540
|
+
"@bike4mind/common": "2.42.2-block-missing-tool-result.17608+13b93034b",
|
|
11541
|
+
"@bike4mind/mcp": "1.22.2-block-missing-tool-result.17608+13b93034b",
|
|
11542
|
+
"@bike4mind/services": "2.39.1-block-missing-tool-result.17608+13b93034b",
|
|
11543
|
+
"@bike4mind/utils": "2.1.10-block-missing-tool-result.17608+13b93034b",
|
|
11544
11544
|
"@types/better-sqlite3": "^7.6.13",
|
|
11545
11545
|
"@types/diff": "^5.0.9",
|
|
11546
11546
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -11553,7 +11553,8 @@ var package_default = {
|
|
|
11553
11553
|
tsx: "^4.21.0",
|
|
11554
11554
|
typescript: "^5.9.3",
|
|
11555
11555
|
vitest: "^3.2.4"
|
|
11556
|
-
}
|
|
11556
|
+
},
|
|
11557
|
+
gitHead: "13b93034ba30ba48dd597037effa64bd812b76b0"
|
|
11557
11558
|
};
|
|
11558
11559
|
|
|
11559
11560
|
// src/config/constants.ts
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/src-3MJEHI5W.js
CHANGED
|
File without changes
|
|
@@ -64,6 +64,7 @@ import {
|
|
|
64
64
|
XAIImageService,
|
|
65
65
|
aiImageService,
|
|
66
66
|
buildAndSortMessages,
|
|
67
|
+
buildVoiceInstructions,
|
|
67
68
|
calculateRetryDelay,
|
|
68
69
|
calculateTotalTokenLength,
|
|
69
70
|
checkOrganizationStorageLimit,
|
|
@@ -82,6 +83,7 @@ import {
|
|
|
82
83
|
fetchAndConvertFabFiles,
|
|
83
84
|
fetchAndParseURL,
|
|
84
85
|
fetchAndProcessPreviousMessages,
|
|
86
|
+
formatVoiceHistory,
|
|
85
87
|
generateSafeEmbedding,
|
|
86
88
|
getAvailableModels,
|
|
87
89
|
getCachedSignedUrl,
|
|
@@ -127,7 +129,7 @@ import {
|
|
|
127
129
|
validateMermaidSyntax,
|
|
128
130
|
warmUpSettingsCache,
|
|
129
131
|
withRetry
|
|
130
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-W2GB4FA6.js";
|
|
131
133
|
import "./chunk-LL5J3SVB.js";
|
|
132
134
|
import {
|
|
133
135
|
Logger,
|
|
@@ -204,6 +206,7 @@ export {
|
|
|
204
206
|
XAIImageService,
|
|
205
207
|
aiImageService,
|
|
206
208
|
buildAndSortMessages,
|
|
209
|
+
buildVoiceInstructions,
|
|
207
210
|
calculateRetryDelay,
|
|
208
211
|
calculateTotalTokenLength,
|
|
209
212
|
checkOrganizationStorageLimit,
|
|
@@ -222,6 +225,7 @@ export {
|
|
|
222
225
|
fetchAndConvertFabFiles,
|
|
223
226
|
fetchAndParseURL,
|
|
224
227
|
fetchAndProcessPreviousMessages,
|
|
228
|
+
formatVoiceHistory,
|
|
225
229
|
generateSafeEmbedding,
|
|
226
230
|
getAvailableModels,
|
|
227
231
|
getCachedSignedUrl,
|
package/dist/utils-JCHWDM4Z.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bike4mind/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16-block-missing-tool-result.17608+13b93034b",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -30,6 +30,16 @@
|
|
|
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
|
+
"postinstall": "node -e \"try { require('better-sqlite3') } catch(e) { if(e.message.includes('bindings')) { console.log('\\n⚠️ Rebuilding better-sqlite3 native bindings...'); require('child_process').execSync('pnpm rebuild better-sqlite3', {stdio:'inherit'}) } }\""
|
|
42
|
+
},
|
|
33
43
|
"dependencies": {
|
|
34
44
|
"@anthropic-ai/sdk": "^0.22.0",
|
|
35
45
|
"@aws-sdk/client-apigatewaymanagementapi": "3.654.0",
|
|
@@ -96,6 +106,11 @@
|
|
|
96
106
|
"zustand": "^4.5.4"
|
|
97
107
|
},
|
|
98
108
|
"devDependencies": {
|
|
109
|
+
"@bike4mind/agents": "0.1.0",
|
|
110
|
+
"@bike4mind/common": "2.42.2-block-missing-tool-result.17608+13b93034b",
|
|
111
|
+
"@bike4mind/mcp": "1.22.2-block-missing-tool-result.17608+13b93034b",
|
|
112
|
+
"@bike4mind/services": "2.39.1-block-missing-tool-result.17608+13b93034b",
|
|
113
|
+
"@bike4mind/utils": "2.1.10-block-missing-tool-result.17608+13b93034b",
|
|
99
114
|
"@types/better-sqlite3": "^7.6.13",
|
|
100
115
|
"@types/diff": "^5.0.9",
|
|
101
116
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -107,20 +122,7 @@
|
|
|
107
122
|
"tsup": "^8.5.1",
|
|
108
123
|
"tsx": "^4.21.0",
|
|
109
124
|
"typescript": "^5.9.3",
|
|
110
|
-
"vitest": "^3.2.4"
|
|
111
|
-
"@bike4mind/agents": "0.1.0",
|
|
112
|
-
"@bike4mind/common": "2.42.1",
|
|
113
|
-
"@bike4mind/mcp": "1.22.1",
|
|
114
|
-
"@bike4mind/services": "2.39.0",
|
|
115
|
-
"@bike4mind/utils": "2.1.9"
|
|
125
|
+
"vitest": "^3.2.4"
|
|
116
126
|
},
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
"build": "tsup",
|
|
120
|
-
"typecheck": "tsc --noEmit",
|
|
121
|
-
"test": "vitest run",
|
|
122
|
-
"test:watch": "vitest",
|
|
123
|
-
"start": "node dist/index.js",
|
|
124
|
-
"postinstall": "node -e \"try { require('better-sqlite3') } catch(e) { if(e.message.includes('bindings')) { console.log('\\n⚠️ Rebuilding better-sqlite3 native bindings...'); require('child_process').execSync('pnpm rebuild better-sqlite3', {stdio:'inherit'}) } }\""
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
+
"gitHead": "13b93034ba30ba48dd597037effa64bd812b76b0"
|
|
128
|
+
}
|