@bike4mind/cli 0.2.11-feat-api-key-rate-limiting.17313 → 0.2.11-feat-api-key-rate-limiting.17321

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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-S42YW3EI.js";
4
+ } from "./chunk-JS23EPWX.js";
5
5
  import "./chunk-PDX44BCA.js";
6
6
 
7
7
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/artifactExtractor.js
@@ -16,7 +16,7 @@ import {
16
16
  dayjsConfig_default,
17
17
  extractSnippetMeta,
18
18
  settingsMap
19
- } from "./chunk-S42YW3EI.js";
19
+ } from "./chunk-JS23EPWX.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";
@@ -249,6 +249,17 @@ var AnthropicBackend = class {
249
249
  this._api = new Anthropic({ apiKey });
250
250
  this.logger = logger ?? new Logger();
251
251
  }
252
+ /**
253
+ * Get thinking blocks from the last assistant content.
254
+ * Filters to only include thinking/redacted_thinking blocks.
255
+ * Returns undefined if thinking is disabled or no blocks are present.
256
+ */
257
+ getThinkingBlocks() {
258
+ if (!this.isThinkingEnabled)
259
+ return void 0;
260
+ const blocks = this.lastAssistantContent.filter((block) => block?.type === "thinking" || block?.type === "redacted_thinking");
261
+ return blocks.length > 0 ? blocks : void 0;
262
+ }
252
263
  async getModelInfo() {
253
264
  return [
254
265
  {
@@ -701,8 +712,12 @@ var AnthropicBackend = class {
701
712
  this.logger.debug(`[Tool Execution] Last few messages:`, JSON.stringify(messages.slice(-3), null, 2));
702
713
  await this.complete(model, messages, options, cb, toolsUsed);
703
714
  } else {
704
- this.logger.debug(`[Tool Execution] executeTools=false, passing tool calls to callback`);
705
- await cb([null], { toolsUsed });
715
+ const thinkingBlocks = this.getThinkingBlocks();
716
+ this.logger.debug(`[Tool Execution] executeTools=false, passing tool calls to callback with ${thinkingBlocks?.length || 0} thinking blocks`);
717
+ await cb([null], {
718
+ toolsUsed,
719
+ thinking: thinkingBlocks
720
+ });
706
721
  }
707
722
  return;
708
723
  }
@@ -774,8 +789,12 @@ var AnthropicBackend = class {
774
789
  await this.complete(model, messages, { ...options, tools: void 0, _internal: void 0 }, cb, toolsUsed);
775
790
  }
776
791
  } else {
777
- this.logger.debug(`[Tool Execution] executeTools=false, passing tool calls to callback`);
778
- await cb([null], { toolsUsed });
792
+ const thinkingBlocks = this.getThinkingBlocks();
793
+ this.logger.debug(`[Tool Execution] executeTools=false, passing tool calls to callback with ${thinkingBlocks?.length || 0} thinking blocks`);
794
+ await cb([null], {
795
+ toolsUsed,
796
+ thinking: thinkingBlocks
797
+ });
779
798
  }
780
799
  return;
781
800
  }
@@ -5911,6 +5911,9 @@ function buildSSEEvent(text, info) {
5911
5911
  outputTokens: info.outputTokens
5912
5912
  };
5913
5913
  }
5914
+ if (info?.thinking && info.thinking.length > 0) {
5915
+ event.thinking = info.thinking;
5916
+ }
5914
5917
  return event;
5915
5918
  }
5916
5919
  function formatSSEError(error) {
@@ -7,11 +7,11 @@ import {
7
7
  getSettingsMap,
8
8
  getSettingsValue,
9
9
  secureParameters
10
- } from "./chunk-BBQI2EAJ.js";
10
+ } from "./chunk-4RN2B56U.js";
11
11
  import {
12
12
  KnowledgeType,
13
13
  SupportedFabFileMimeTypes
14
- } from "./chunk-S42YW3EI.js";
14
+ } from "./chunk-JS23EPWX.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-BBQI2EAJ.js";
9
+ } from "./chunk-4RN2B56U.js";
10
10
  import {
11
11
  ApiKeyType,
12
12
  MementoTier,
13
13
  isSupportedEmbeddingModel
14
- } from "./chunk-S42YW3EI.js";
14
+ } from "./chunk-JS23EPWX.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-BBQI2EAJ.js";
5
+ } from "./chunk-4RN2B56U.js";
6
6
  import {
7
7
  CompletionApiUsageTransaction,
8
8
  GenericCreditDeductTransaction,
@@ -11,7 +11,7 @@ import {
11
11
  RealtimeVoiceUsageTransaction,
12
12
  TextGenerationUsageTransaction,
13
13
  TransferCreditTransaction
14
- } from "./chunk-S42YW3EI.js";
14
+ } from "./chunk-JS23EPWX.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
17
17
  import { z } from "zod";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  createFabFile,
4
4
  createFabFileSchema
5
- } from "./chunk-Y5NGQESV.js";
6
- import "./chunk-BBQI2EAJ.js";
5
+ } from "./chunk-OX6W5SJ7.js";
6
+ import "./chunk-4RN2B56U.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-JS23EPWX.js";
9
9
  import "./chunk-PDX44BCA.js";
10
10
  export {
11
11
  createFabFile,
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  getEffectiveApiKey,
5
5
  getOpenWeatherKey,
6
6
  getSerperKey
7
- } from "./chunk-X5H7N2CY.js";
8
- import "./chunk-7TW7K6CW.js";
9
- import "./chunk-Y5NGQESV.js";
7
+ } from "./chunk-PCZVBQPE.js";
8
+ import "./chunk-R3OGMLPO.js";
9
+ import "./chunk-OX6W5SJ7.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-BBQI2EAJ.js";
18
+ } from "./chunk-4RN2B56U.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-S42YW3EI.js";
76
+ } from "./chunk-JS23EPWX.js";
77
77
  import {
78
78
  __require
79
79
  } from "./chunk-PDX44BCA.js";
@@ -107,7 +107,8 @@ function CustomTextInput({
107
107
  onChange,
108
108
  onSubmit,
109
109
  placeholder = "",
110
- showCursor = true
110
+ showCursor = true,
111
+ disabled = false
111
112
  }) {
112
113
  const [cursorOffset, setCursorOffset] = useState(value.length);
113
114
  useInput(
@@ -188,7 +189,7 @@ function CustomTextInput({
188
189
  setCursorOffset(cursorOffset + 1);
189
190
  }
190
191
  },
191
- { isActive: true }
192
+ { isActive: !disabled }
192
193
  );
193
194
  const hasValue = value.length > 0;
194
195
  if (!hasValue) {
@@ -827,56 +828,59 @@ function InputPrompt({
827
828
  useEffect(() => {
828
829
  setFileSelectedIndex(0);
829
830
  }, [filteredFiles]);
830
- useInput2((_input, key) => {
831
- if (fileAutocomplete?.active && filteredFiles.length > 0) {
832
- if (key.upArrow) {
833
- setFileSelectedIndex((prev) => prev > 0 ? prev - 1 : filteredFiles.length - 1);
834
- return;
835
- } else if (key.downArrow) {
836
- setFileSelectedIndex((prev) => prev < filteredFiles.length - 1 ? prev + 1 : 0);
837
- return;
838
- } else if (key.tab) {
839
- const selectedFile = filteredFiles[fileSelectedIndex];
840
- if (selectedFile) {
841
- insertSelectedFile(selectedFile);
831
+ useInput2(
832
+ (_input, key) => {
833
+ if (fileAutocomplete?.active && filteredFiles.length > 0) {
834
+ if (key.upArrow) {
835
+ setFileSelectedIndex((prev) => prev > 0 ? prev - 1 : filteredFiles.length - 1);
836
+ return;
837
+ } else if (key.downArrow) {
838
+ setFileSelectedIndex((prev) => prev < filteredFiles.length - 1 ? prev + 1 : 0);
839
+ return;
840
+ } else if (key.tab) {
841
+ const selectedFile = filteredFiles[fileSelectedIndex];
842
+ if (selectedFile) {
843
+ insertSelectedFile(selectedFile);
844
+ }
845
+ return;
846
+ } else if (key.escape) {
847
+ setFileAutocomplete(null);
848
+ return;
842
849
  }
843
- return;
844
- } else if (key.escape) {
845
- setFileAutocomplete(null);
846
- return;
847
850
  }
848
- }
849
- if (shouldShowCommandAutocomplete && filteredCommands.length > 0) {
850
- if (key.upArrow) {
851
- setSelectedIndex((prev) => prev > 0 ? prev - 1 : filteredCommands.length - 1);
852
- } else if (key.downArrow) {
853
- setSelectedIndex((prev) => prev < filteredCommands.length - 1 ? prev + 1 : 0);
854
- }
855
- return;
856
- }
857
- if (!shouldShowCommandAutocomplete && !fileAutocomplete?.active && history.length > 0) {
858
- if (key.upArrow) {
859
- if (historyIndex === -1) {
860
- setTempInput(value);
861
- setHistoryIndex(0);
862
- setValue(history[0]);
863
- } else if (historyIndex < history.length - 1) {
864
- const newIndex = historyIndex + 1;
865
- setHistoryIndex(newIndex);
866
- setValue(history[newIndex]);
851
+ if (shouldShowCommandAutocomplete && filteredCommands.length > 0) {
852
+ if (key.upArrow) {
853
+ setSelectedIndex((prev) => prev > 0 ? prev - 1 : filteredCommands.length - 1);
854
+ } else if (key.downArrow) {
855
+ setSelectedIndex((prev) => prev < filteredCommands.length - 1 ? prev + 1 : 0);
867
856
  }
868
- } else if (key.downArrow) {
869
- if (historyIndex > 0) {
870
- const newIndex = historyIndex - 1;
871
- setHistoryIndex(newIndex);
872
- setValue(history[newIndex]);
873
- } else if (historyIndex === 0) {
874
- setHistoryIndex(-1);
875
- setValue(tempInput);
857
+ return;
858
+ }
859
+ if (!shouldShowCommandAutocomplete && !fileAutocomplete?.active && history.length > 0) {
860
+ if (key.upArrow) {
861
+ if (historyIndex === -1) {
862
+ setTempInput(value);
863
+ setHistoryIndex(0);
864
+ setValue(history[0]);
865
+ } else if (historyIndex < history.length - 1) {
866
+ const newIndex = historyIndex + 1;
867
+ setHistoryIndex(newIndex);
868
+ setValue(history[newIndex]);
869
+ }
870
+ } else if (key.downArrow) {
871
+ if (historyIndex > 0) {
872
+ const newIndex = historyIndex - 1;
873
+ setHistoryIndex(newIndex);
874
+ setValue(history[newIndex]);
875
+ } else if (historyIndex === 0) {
876
+ setHistoryIndex(-1);
877
+ setValue(tempInput);
878
+ }
876
879
  }
877
880
  }
878
- }
879
- });
881
+ },
882
+ { isActive: !disabled }
883
+ );
880
884
  const insertSelectedFile = (file) => {
881
885
  if (!fileAutocomplete) return;
882
886
  const beforeAt = value.slice(0, fileAutocomplete.startIndex);
@@ -970,7 +974,8 @@ function InputPrompt({
970
974
  onChange: handleChange,
971
975
  onSubmit: handleSubmit,
972
976
  placeholder: getPlaceholder(),
973
- showCursor: !disabled
977
+ showCursor: !disabled,
978
+ disabled
974
979
  }
975
980
  )), shouldShowCommandAutocomplete && /* @__PURE__ */ React5.createElement(CommandAutocomplete, { commands: filteredCommands, selectedIndex }), fileAutocomplete?.active && /* @__PURE__ */ React5.createElement(FileAutocomplete, { files: filteredFiles, selectedIndex: fileSelectedIndex, query: fileAutocomplete.query }));
976
981
  }
@@ -1538,7 +1543,7 @@ ${errorBlock}`;
1538
1543
  onSubmit: handleSubmit,
1539
1544
  onBashCommand,
1540
1545
  onImageDetected,
1541
- disabled: isThinking,
1546
+ disabled: isThinking || !!permissionPrompt,
1542
1547
  history: commandHistory,
1543
1548
  commands,
1544
1549
  prefillInput,
@@ -3144,6 +3149,7 @@ ${options.context}` : this.getSystemPrompt()
3144
3149
  }
3145
3150
  if (completionInfo.toolsUsed && completionInfo.toolsUsed.length > 0) {
3146
3151
  hadToolCalls = true;
3152
+ const thinkingBlocks = completionInfo.thinking || [];
3147
3153
  for (const toolUse of completionInfo.toolsUsed) {
3148
3154
  const toolCallId = `${toolUse.name}_${JSON.stringify(toolUse.arguments)}`;
3149
3155
  if (processedToolIds.has(toolCallId)) {
@@ -3176,16 +3182,23 @@ ${options.context}` : this.getSystemPrompt()
3176
3182
  const params = typeof toolUse.arguments === "string" ? JSON.parse(toolUse.arguments) : toolUse.arguments;
3177
3183
  observation = await tool.toolFn(params);
3178
3184
  const toolCallId2 = `${toolUse.name}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
3185
+ const assistantContent = [
3186
+ // Include thinking blocks first (required by Anthropic when thinking is enabled)
3187
+ ...thinkingBlocks,
3188
+ // Then the tool use
3189
+ {
3190
+ type: "tool_use",
3191
+ id: toolCallId2,
3192
+ name: toolUse.name,
3193
+ input: params
3194
+ }
3195
+ ];
3196
+ this.context.logger.debug(
3197
+ `[assistantContent] ${assistantContent.length} blocks (${thinkingBlocks.length} thinking, 1 tool_use)`
3198
+ );
3179
3199
  messages.push({
3180
3200
  role: "assistant",
3181
- content: [
3182
- {
3183
- type: "tool_use",
3184
- id: toolCallId2,
3185
- name: toolUse.name,
3186
- input: params
3187
- }
3188
- ]
3201
+ content: assistantContent
3189
3202
  });
3190
3203
  messages.push({
3191
3204
  role: "user",
@@ -11134,6 +11147,7 @@ var ServerLlmBackend = class {
11134
11147
  let accumulatedText = "";
11135
11148
  let lastUsageInfo = {};
11136
11149
  let toolsUsed = [];
11150
+ let thinkingBlocks = [];
11137
11151
  let receivedDone = false;
11138
11152
  const parser = createParser({
11139
11153
  onEvent: (event) => {
@@ -11147,9 +11161,12 @@ var ServerLlmBackend = class {
11147
11161
  if (toolsUsed.length > 0) {
11148
11162
  const info = {
11149
11163
  toolsUsed,
11164
+ thinking: thinkingBlocks.length > 0 ? thinkingBlocks : void 0,
11150
11165
  ...lastUsageInfo
11151
11166
  };
11152
- logger.debug("[ServerLlmBackend] Calling callback with tools, will wait for completion");
11167
+ logger.debug(
11168
+ `[ServerLlmBackend] Calling callback with tools, thinking blocks: ${thinkingBlocks.length}`
11169
+ );
11153
11170
  callback([cleanedText], info).catch((err) => {
11154
11171
  logger.error("[ServerLlmBackend] Callback error:", err);
11155
11172
  reject(err);
@@ -11205,6 +11222,10 @@ var ServerLlmBackend = class {
11205
11222
  if (parsed.tools && parsed.tools.length > 0) {
11206
11223
  toolsUsed = parsed.tools;
11207
11224
  }
11225
+ if (parsed.thinking && parsed.thinking.length > 0) {
11226
+ thinkingBlocks = parsed.thinking;
11227
+ logger.debug(`[ServerLlmBackend] Received ${thinkingBlocks.length} thinking blocks`);
11228
+ }
11208
11229
  if (parsed.usage) {
11209
11230
  lastUsageInfo = {
11210
11231
  inputTokens: parsed.usage.inputTokens,
@@ -11527,7 +11548,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
11527
11548
  // package.json
11528
11549
  var package_default = {
11529
11550
  name: "@bike4mind/cli",
11530
- version: "0.2.11-feat-api-key-rate-limiting.17313+25a7242a0",
11551
+ version: "0.2.11-feat-api-key-rate-limiting.17321+5d0057357",
11531
11552
  type: "module",
11532
11553
  description: "Interactive CLI tool for Bike4Mind with ReAct agents",
11533
11554
  license: "UNLICENSED",
@@ -11631,10 +11652,10 @@ var package_default = {
11631
11652
  },
11632
11653
  devDependencies: {
11633
11654
  "@bike4mind/agents": "0.1.0",
11634
- "@bike4mind/common": "2.40.1-feat-api-key-rate-limiting.17313+25a7242a0",
11635
- "@bike4mind/mcp": "1.20.5-feat-api-key-rate-limiting.17313+25a7242a0",
11636
- "@bike4mind/services": "2.35.1-feat-api-key-rate-limiting.17313+25a7242a0",
11637
- "@bike4mind/utils": "2.1.5-feat-api-key-rate-limiting.17313+25a7242a0",
11655
+ "@bike4mind/common": "2.40.1-feat-api-key-rate-limiting.17321+5d0057357",
11656
+ "@bike4mind/mcp": "1.20.5-feat-api-key-rate-limiting.17321+5d0057357",
11657
+ "@bike4mind/services": "2.35.1-feat-api-key-rate-limiting.17321+5d0057357",
11658
+ "@bike4mind/utils": "2.1.5-feat-api-key-rate-limiting.17321+5d0057357",
11638
11659
  "@types/better-sqlite3": "^7.6.13",
11639
11660
  "@types/diff": "^5.0.9",
11640
11661
  "@types/jsonwebtoken": "^9.0.4",
@@ -11647,7 +11668,7 @@ var package_default = {
11647
11668
  typescript: "^5.9.3",
11648
11669
  vitest: "^3.2.4"
11649
11670
  },
11650
- gitHead: "25a7242a0331435d440bf50f5e7f355eeb388ec9"
11671
+ gitHead: "5d0057357536a200c8b1806ccb7f2b47e6868036"
11651
11672
  };
11652
11673
 
11653
11674
  // src/config/constants.ts
@@ -12032,7 +12053,8 @@ function CliApp() {
12032
12053
  permissionPrompt: null,
12033
12054
  trustLocationSelector: null,
12034
12055
  rewindSelector: null,
12035
- sessionSelector: null
12056
+ sessionSelector: null,
12057
+ orchestrator: null
12036
12058
  });
12037
12059
  const [isInitialized, setIsInitialized] = useState8(false);
12038
12060
  const [initError, setInitError] = useState8(null);
@@ -12378,8 +12400,10 @@ Remember: Use context from previous messages to understand follow-up questions.$
12378
12400
  permissionManager,
12379
12401
  config,
12380
12402
  // Store config for synchronous access
12381
- availableModels: models
12403
+ availableModels: models,
12382
12404
  // Store models for ConfigEditor
12405
+ orchestrator
12406
+ // Store orchestrator for step handler updates
12383
12407
  }));
12384
12408
  setStoreSession(newSession);
12385
12409
  setIsInitialized(true);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-S42YW3EI.js";
4
+ } from "./chunk-JS23EPWX.js";
5
5
  import "./chunk-PDX44BCA.js";
6
6
 
7
7
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/llmMarkdownGenerator.js
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-S42YW3EI.js";
4
+ } from "./chunk-JS23EPWX.js";
5
5
  import "./chunk-PDX44BCA.js";
6
6
 
7
7
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/markdownGenerator.js
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  findMostSimilarMemento,
4
4
  getRelevantMementos
5
- } from "./chunk-X5H7N2CY.js";
6
- import "./chunk-BBQI2EAJ.js";
5
+ } from "./chunk-PCZVBQPE.js";
6
+ import "./chunk-4RN2B56U.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-JS23EPWX.js";
9
9
  import "./chunk-PDX44BCA.js";
10
10
  export {
11
11
  findMostSimilarMemento,
@@ -294,7 +294,7 @@ import {
294
294
  validateQuestMasterArtifactV2,
295
295
  validateReactArtifactV2,
296
296
  validateSvgArtifactV2
297
- } from "./chunk-S42YW3EI.js";
297
+ } from "./chunk-JS23EPWX.js";
298
298
  import "./chunk-PDX44BCA.js";
299
299
  export {
300
300
  ALL_IMAGE_MODELS,
@@ -120,7 +120,7 @@ import {
120
120
  validateMermaidSyntax,
121
121
  warmUpSettingsCache,
122
122
  withRetry
123
- } from "./chunk-BBQI2EAJ.js";
123
+ } from "./chunk-4RN2B56U.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-S42YW3EI.js";
132
+ import "./chunk-JS23EPWX.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-7TW7K6CW.js";
6
- import "./chunk-BBQI2EAJ.js";
5
+ } from "./chunk-R3OGMLPO.js";
6
+ import "./chunk-4RN2B56U.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-JS23EPWX.js";
9
9
  import "./chunk-PDX44BCA.js";
10
10
  export {
11
11
  SubtractCreditsSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bike4mind/cli",
3
- "version": "0.2.11-feat-api-key-rate-limiting.17313+25a7242a0",
3
+ "version": "0.2.11-feat-api-key-rate-limiting.17321+5d0057357",
4
4
  "type": "module",
5
5
  "description": "Interactive CLI tool for Bike4Mind with ReAct agents",
6
6
  "license": "UNLICENSED",
@@ -104,10 +104,10 @@
104
104
  },
105
105
  "devDependencies": {
106
106
  "@bike4mind/agents": "0.1.0",
107
- "@bike4mind/common": "2.40.1-feat-api-key-rate-limiting.17313+25a7242a0",
108
- "@bike4mind/mcp": "1.20.5-feat-api-key-rate-limiting.17313+25a7242a0",
109
- "@bike4mind/services": "2.35.1-feat-api-key-rate-limiting.17313+25a7242a0",
110
- "@bike4mind/utils": "2.1.5-feat-api-key-rate-limiting.17313+25a7242a0",
107
+ "@bike4mind/common": "2.40.1-feat-api-key-rate-limiting.17321+5d0057357",
108
+ "@bike4mind/mcp": "1.20.5-feat-api-key-rate-limiting.17321+5d0057357",
109
+ "@bike4mind/services": "2.35.1-feat-api-key-rate-limiting.17321+5d0057357",
110
+ "@bike4mind/utils": "2.1.5-feat-api-key-rate-limiting.17321+5d0057357",
111
111
  "@types/better-sqlite3": "^7.6.13",
112
112
  "@types/diff": "^5.0.9",
113
113
  "@types/jsonwebtoken": "^9.0.4",
@@ -120,5 +120,5 @@
120
120
  "typescript": "^5.9.3",
121
121
  "vitest": "^3.2.4"
122
122
  },
123
- "gitHead": "25a7242a0331435d440bf50f5e7f355eeb388ec9"
123
+ "gitHead": "5d0057357536a200c8b1806ccb7f2b47e6868036"
124
124
  }