@bike4mind/cli 0.2.11-feat-api-key-rate-limiting.17313 → 0.2.11-feat-cli-no-project-config-flag.17320

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.
@@ -36,16 +36,24 @@ const argv = yargs(hideBin(process.argv))
36
36
  description: 'Show debug logs in console',
37
37
  default: false,
38
38
  })
39
+ .option('no-project-config', {
40
+ type: 'boolean',
41
+ description: 'Disable loading project-specific configuration (.bike4mind/)',
42
+ default: false,
43
+ })
39
44
  .help()
40
45
  .alias('help', 'h')
41
46
  .version()
42
47
  .alias('version', 'V')
43
48
  .parse();
44
49
 
45
- // Set environment variable for verbose mode
50
+ // Set environment variables from CLI flags
46
51
  if (argv.verbose) {
47
52
  process.env.B4M_VERBOSE = '1';
48
53
  }
54
+ if (argv['no-project-config']) {
55
+ process.env.B4M_NO_PROJECT_CONFIG = '1';
56
+ }
49
57
 
50
58
  // Auto-detect environment: prefer production mode when dist exists
51
59
  const distPath = join(__dirname, '../dist/index.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-3OX632TE.js";
5
5
  import "./chunk-PDX44BCA.js";
6
6
 
7
7
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/artifactExtractor.js
@@ -672,14 +672,6 @@ var RealtimeVoiceUsageTransaction = BaseCreditTransaction.extend({
672
672
  model: z7.string(),
673
673
  sessionId: z7.string()
674
674
  });
675
- var CompletionApiUsageTransaction = BaseCreditTransaction.extend({
676
- type: z7.literal("completion_api_usage"),
677
- model: z7.string(),
678
- apiKeyId: z7.string().optional(),
679
- // Optional - present for API key auth, undefined for JWT
680
- inputTokens: z7.number(),
681
- outputTokens: z7.number()
682
- });
683
675
  var TransferCreditTransaction = BaseCreditTransaction.extend({
684
676
  type: z7.literal("transfer_credit"),
685
677
  recipientId: z7.string(),
@@ -694,7 +686,6 @@ var CreditTransaction = z7.discriminatedUnion("type", [
694
686
  ImageGenerationUsageTransaction,
695
687
  ImageEditUsageTransaction,
696
688
  RealtimeVoiceUsageTransaction,
697
- CompletionApiUsageTransaction,
698
689
  TransferCreditTransaction,
699
690
  ReceivedCreditTransaction
700
691
  ]);
@@ -709,7 +700,6 @@ var CREDIT_DEDUCT_TRANSACTION_TYPES = [
709
700
  "image_generation_usage",
710
701
  "image_edit_usage",
711
702
  "realtime_voice_usage",
712
- "completion_api_usage",
713
703
  "transfer_credit",
714
704
  "generic_deduct"
715
705
  ];
@@ -5911,6 +5901,9 @@ function buildSSEEvent(text, info) {
5911
5901
  outputTokens: info.outputTokens
5912
5902
  };
5913
5903
  }
5904
+ if (info?.thinking && info.thinking.length > 0) {
5905
+ event.thinking = info.thinking;
5906
+ }
5914
5907
  return event;
5915
5908
  }
5916
5909
  function formatSSEError(error) {
@@ -6008,7 +6001,6 @@ export {
6008
6001
  ImageGenerationUsageTransaction,
6009
6002
  ImageEditUsageTransaction,
6010
6003
  RealtimeVoiceUsageTransaction,
6011
- CompletionApiUsageTransaction,
6012
6004
  TransferCreditTransaction,
6013
6005
  CreditTransaction,
6014
6006
  CREDIT_ADD_TRANSACTION_TYPES,
@@ -6,12 +6,12 @@ import {
6
6
  getSettingsByNames,
7
7
  obfuscateApiKey,
8
8
  secureParameters
9
- } from "./chunk-BBQI2EAJ.js";
9
+ } from "./chunk-JYH72REB.js";
10
10
  import {
11
11
  ApiKeyType,
12
12
  MementoTier,
13
13
  isSupportedEmbeddingModel
14
- } from "./chunk-S42YW3EI.js";
14
+ } from "./chunk-3OX632TE.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
17
17
  import { z } from "zod";
@@ -2,16 +2,15 @@
2
2
  import {
3
3
  BadRequestError,
4
4
  secureParameters
5
- } from "./chunk-BBQI2EAJ.js";
5
+ } from "./chunk-JYH72REB.js";
6
6
  import {
7
- CompletionApiUsageTransaction,
8
7
  GenericCreditDeductTransaction,
9
8
  ImageEditUsageTransaction,
10
9
  ImageGenerationUsageTransaction,
11
10
  RealtimeVoiceUsageTransaction,
12
11
  TextGenerationUsageTransaction,
13
12
  TransferCreditTransaction
14
- } from "./chunk-S42YW3EI.js";
13
+ } from "./chunk-3OX632TE.js";
15
14
 
16
15
  // ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
17
16
  import { z } from "zod";
@@ -21,7 +20,6 @@ var SubtractCreditsSchema = z.discriminatedUnion("type", [
21
20
  ImageGenerationUsageTransaction.omit({ createdAt: true, updatedAt: true }),
22
21
  RealtimeVoiceUsageTransaction.omit({ createdAt: true, updatedAt: true }),
23
22
  ImageEditUsageTransaction.omit({ createdAt: true, updatedAt: true }),
24
- CompletionApiUsageTransaction.omit({ createdAt: true, updatedAt: true }),
25
23
  TransferCreditTransaction.omit({ createdAt: true, updatedAt: true })
26
24
  ]);
27
25
  async function subtractCredits(parameters, { db, creditHolderMethods, skipBalanceUpdate, currentCreditHolder }) {
@@ -65,20 +63,6 @@ async function subtractCredits(parameters, { db, creditHolderMethods, skipBalanc
65
63
  inputTokens: params.inputTokens,
66
64
  outputTokens: params.outputTokens
67
65
  });
68
- } else if (type === "completion_api_usage") {
69
- await db.creditTransactions.createTransaction("completion_api_usage", {
70
- ownerId,
71
- ownerType,
72
- credits: -Math.abs(credits),
73
- // Negative for usage
74
- description: description || "Completion API usage",
75
- metadata,
76
- model: params.model,
77
- apiKeyId: params.apiKeyId,
78
- // Optional - present for API key auth, undefined for JWT
79
- inputTokens: params.inputTokens,
80
- outputTokens: params.outputTokens
81
- });
82
66
  } else if (type === "image_generation_usage") {
83
67
  await db.creditTransactions.createTransaction("image_generation_usage", {
84
68
  ownerId,
@@ -7,11 +7,11 @@ import {
7
7
  getSettingsMap,
8
8
  getSettingsValue,
9
9
  secureParameters
10
- } from "./chunk-BBQI2EAJ.js";
10
+ } from "./chunk-JYH72REB.js";
11
11
  import {
12
12
  KnowledgeType,
13
13
  SupportedFabFileMimeTypes
14
- } from "./chunk-S42YW3EI.js";
14
+ } from "./chunk-3OX632TE.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/fabFileService/create.js
17
17
  import { z } from "zod";
@@ -16,7 +16,7 @@ import {
16
16
  dayjsConfig_default,
17
17
  extractSnippetMeta,
18
18
  settingsMap
19
- } from "./chunk-S42YW3EI.js";
19
+ } from "./chunk-3OX632TE.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
  }
@@ -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-HPYQM2B7.js";
6
+ import "./chunk-JYH72REB.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-3OX632TE.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-7JR6VASX.js";
8
+ import "./chunk-7ORA6KGN.js";
9
+ import "./chunk-HPYQM2B7.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-JYH72REB.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-3OX632TE.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
- }
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
850
  }
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,
@@ -2376,15 +2381,19 @@ var ConfigStore = class {
2376
2381
  throw error;
2377
2382
  }
2378
2383
  }
2379
- this.projectConfigDir = findProjectConfigDir();
2380
2384
  let projectConfig = null;
2381
2385
  let projectLocalConfig = null;
2382
- if (this.projectConfigDir) {
2383
- projectConfig = await loadProjectConfig(this.projectConfigDir);
2384
- projectLocalConfig = await loadProjectLocalConfig(this.projectConfigDir);
2385
- if (projectConfig) {
2386
- console.log(`\u{1F4C1} Project config loaded from: ${this.projectConfigDir}/.bike4mind/`);
2386
+ if (process.env.B4M_NO_PROJECT_CONFIG !== "1") {
2387
+ this.projectConfigDir = findProjectConfigDir();
2388
+ if (this.projectConfigDir) {
2389
+ projectConfig = await loadProjectConfig(this.projectConfigDir);
2390
+ projectLocalConfig = await loadProjectLocalConfig(this.projectConfigDir);
2391
+ if (projectConfig) {
2392
+ console.log(`\u{1F4C1} Project config loaded from: ${this.projectConfigDir}/.bike4mind/`);
2393
+ }
2387
2394
  }
2395
+ } else {
2396
+ this.projectConfigDir = null;
2388
2397
  }
2389
2398
  this.config = mergeConfigs(globalConfig, projectConfig, projectLocalConfig);
2390
2399
  return this.config;
@@ -3144,6 +3153,7 @@ ${options.context}` : this.getSystemPrompt()
3144
3153
  }
3145
3154
  if (completionInfo.toolsUsed && completionInfo.toolsUsed.length > 0) {
3146
3155
  hadToolCalls = true;
3156
+ const thinkingBlocks = completionInfo.thinking || [];
3147
3157
  for (const toolUse of completionInfo.toolsUsed) {
3148
3158
  const toolCallId = `${toolUse.name}_${JSON.stringify(toolUse.arguments)}`;
3149
3159
  if (processedToolIds.has(toolCallId)) {
@@ -3176,16 +3186,23 @@ ${options.context}` : this.getSystemPrompt()
3176
3186
  const params = typeof toolUse.arguments === "string" ? JSON.parse(toolUse.arguments) : toolUse.arguments;
3177
3187
  observation = await tool.toolFn(params);
3178
3188
  const toolCallId2 = `${toolUse.name}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
3189
+ const assistantContent = [
3190
+ // Include thinking blocks first (required by Anthropic when thinking is enabled)
3191
+ ...thinkingBlocks,
3192
+ // Then the tool use
3193
+ {
3194
+ type: "tool_use",
3195
+ id: toolCallId2,
3196
+ name: toolUse.name,
3197
+ input: params
3198
+ }
3199
+ ];
3200
+ this.context.logger.debug(
3201
+ `[assistantContent] ${assistantContent.length} blocks (${thinkingBlocks.length} thinking, 1 tool_use)`
3202
+ );
3179
3203
  messages.push({
3180
3204
  role: "assistant",
3181
- content: [
3182
- {
3183
- type: "tool_use",
3184
- id: toolCallId2,
3185
- name: toolUse.name,
3186
- input: params
3187
- }
3188
- ]
3205
+ content: assistantContent
3189
3206
  });
3190
3207
  messages.push({
3191
3208
  role: "user",
@@ -11134,6 +11151,7 @@ var ServerLlmBackend = class {
11134
11151
  let accumulatedText = "";
11135
11152
  let lastUsageInfo = {};
11136
11153
  let toolsUsed = [];
11154
+ let thinkingBlocks = [];
11137
11155
  let receivedDone = false;
11138
11156
  const parser = createParser({
11139
11157
  onEvent: (event) => {
@@ -11147,9 +11165,12 @@ var ServerLlmBackend = class {
11147
11165
  if (toolsUsed.length > 0) {
11148
11166
  const info = {
11149
11167
  toolsUsed,
11168
+ thinking: thinkingBlocks.length > 0 ? thinkingBlocks : void 0,
11150
11169
  ...lastUsageInfo
11151
11170
  };
11152
- logger.debug("[ServerLlmBackend] Calling callback with tools, will wait for completion");
11171
+ logger.debug(
11172
+ `[ServerLlmBackend] Calling callback with tools, thinking blocks: ${thinkingBlocks.length}`
11173
+ );
11153
11174
  callback([cleanedText], info).catch((err) => {
11154
11175
  logger.error("[ServerLlmBackend] Callback error:", err);
11155
11176
  reject(err);
@@ -11205,6 +11226,10 @@ var ServerLlmBackend = class {
11205
11226
  if (parsed.tools && parsed.tools.length > 0) {
11206
11227
  toolsUsed = parsed.tools;
11207
11228
  }
11229
+ if (parsed.thinking && parsed.thinking.length > 0) {
11230
+ thinkingBlocks = parsed.thinking;
11231
+ logger.debug(`[ServerLlmBackend] Received ${thinkingBlocks.length} thinking blocks`);
11232
+ }
11208
11233
  if (parsed.usage) {
11209
11234
  lastUsageInfo = {
11210
11235
  inputTokens: parsed.usage.inputTokens,
@@ -11527,7 +11552,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
11527
11552
  // package.json
11528
11553
  var package_default = {
11529
11554
  name: "@bike4mind/cli",
11530
- version: "0.2.11-feat-api-key-rate-limiting.17313+25a7242a0",
11555
+ version: "0.2.11-feat-cli-no-project-config-flag.17320+1968df1c7",
11531
11556
  type: "module",
11532
11557
  description: "Interactive CLI tool for Bike4Mind with ReAct agents",
11533
11558
  license: "UNLICENSED",
@@ -11631,10 +11656,10 @@ var package_default = {
11631
11656
  },
11632
11657
  devDependencies: {
11633
11658
  "@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",
11659
+ "@bike4mind/common": "2.40.1-feat-cli-no-project-config-flag.17320+1968df1c7",
11660
+ "@bike4mind/mcp": "1.20.5-feat-cli-no-project-config-flag.17320+1968df1c7",
11661
+ "@bike4mind/services": "2.35.1-feat-cli-no-project-config-flag.17320+1968df1c7",
11662
+ "@bike4mind/utils": "2.1.5-feat-cli-no-project-config-flag.17320+1968df1c7",
11638
11663
  "@types/better-sqlite3": "^7.6.13",
11639
11664
  "@types/diff": "^5.0.9",
11640
11665
  "@types/jsonwebtoken": "^9.0.4",
@@ -11647,7 +11672,7 @@ var package_default = {
11647
11672
  typescript: "^5.9.3",
11648
11673
  vitest: "^3.2.4"
11649
11674
  },
11650
- gitHead: "25a7242a0331435d440bf50f5e7f355eeb388ec9"
11675
+ gitHead: "1968df1c7e973aac79e48cd2e6dc1c418b4d47d7"
11651
11676
  };
11652
11677
 
11653
11678
  // src/config/constants.ts
@@ -12032,7 +12057,8 @@ function CliApp() {
12032
12057
  permissionPrompt: null,
12033
12058
  trustLocationSelector: null,
12034
12059
  rewindSelector: null,
12035
- sessionSelector: null
12060
+ sessionSelector: null,
12061
+ orchestrator: null
12036
12062
  });
12037
12063
  const [isInitialized, setIsInitialized] = useState8(false);
12038
12064
  const [initError, setInitError] = useState8(null);
@@ -12378,8 +12404,10 @@ Remember: Use context from previous messages to understand follow-up questions.$
12378
12404
  permissionManager,
12379
12405
  config,
12380
12406
  // Store config for synchronous access
12381
- availableModels: models
12407
+ availableModels: models,
12382
12408
  // Store models for ConfigEditor
12409
+ orchestrator
12410
+ // Store orchestrator for step handler updates
12383
12411
  }));
12384
12412
  setStoreSession(newSession);
12385
12413
  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-3OX632TE.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-3OX632TE.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-7JR6VASX.js";
6
+ import "./chunk-JYH72REB.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-3OX632TE.js";
9
9
  import "./chunk-PDX44BCA.js";
10
10
  export {
11
11
  findMostSimilarMemento,
@@ -40,7 +40,6 @@ import {
40
40
  CitableSourceSchema,
41
41
  ClaudeArtifactMimeTypes,
42
42
  CollectionType,
43
- CompletionApiUsageTransaction,
44
43
  CompletionRequestSchema,
45
44
  ConfluenceApi,
46
45
  CreateFabFileRequestInput,
@@ -294,7 +293,7 @@ import {
294
293
  validateQuestMasterArtifactV2,
295
294
  validateReactArtifactV2,
296
295
  validateSvgArtifactV2
297
- } from "./chunk-S42YW3EI.js";
296
+ } from "./chunk-3OX632TE.js";
298
297
  import "./chunk-PDX44BCA.js";
299
298
  export {
300
299
  ALL_IMAGE_MODELS,
@@ -337,7 +336,6 @@ export {
337
336
  CitableSourceSchema,
338
337
  ClaudeArtifactMimeTypes,
339
338
  CollectionType,
340
- CompletionApiUsageTransaction,
341
339
  CompletionRequestSchema,
342
340
  ConfluenceApi,
343
341
  CreateFabFileRequestInput,
@@ -120,7 +120,7 @@ import {
120
120
  validateMermaidSyntax,
121
121
  warmUpSettingsCache,
122
122
  withRetry
123
- } from "./chunk-BBQI2EAJ.js";
123
+ } from "./chunk-JYH72REB.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-3OX632TE.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-7ORA6KGN.js";
6
+ import "./chunk-JYH72REB.js";
7
7
  import "./chunk-AMDXHL6S.js";
8
- import "./chunk-S42YW3EI.js";
8
+ import "./chunk-3OX632TE.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-cli-no-project-config-flag.17320+1968df1c7",
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-cli-no-project-config-flag.17320+1968df1c7",
108
+ "@bike4mind/mcp": "1.20.5-feat-cli-no-project-config-flag.17320+1968df1c7",
109
+ "@bike4mind/services": "2.35.1-feat-cli-no-project-config-flag.17320+1968df1c7",
110
+ "@bike4mind/utils": "2.1.5-feat-cli-no-project-config-flag.17320+1968df1c7",
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": "1968df1c7e973aac79e48cd2e6dc1c418b4d47d7"
124
124
  }