@bike4mind/cli 0.2.25-cli-file-read-offset.18514 → 0.2.25-cli-file-read-offset.18541
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/README.md +31 -0
- package/dist/{artifactExtractor-JZ5EU5YH.js → artifactExtractor-YLJA25ZH.js} +1 -1
- package/dist/{chunk-LOIWIBZT.js → chunk-CRG4F6FD.js} +15 -11
- package/dist/chunk-EIDW3VBS.js +68 -0
- package/dist/{chunk-FV2VQXYX.js → chunk-ETQCFCFT.js} +2 -2
- package/dist/{chunk-XFN2ICKP.js → chunk-KGERFIL4.js} +1 -1
- package/dist/{chunk-GGQZHK5U.js → chunk-QDD3PG2I.js} +2 -2
- package/dist/{chunk-JHCQOESZ.js → chunk-TNLRJZRH.js} +2 -2
- package/dist/{create-DOGMZSYL.js → create-RL7FTI2P.js} +3 -3
- package/dist/index.js +1764 -1249
- package/dist/{llmMarkdownGenerator-XTKTGXLR.js → llmMarkdownGenerator-3SUOXGY3.js} +1 -1
- package/dist/{markdownGenerator-BPNTWLQB.js → markdownGenerator-FYG7VXYP.js} +1 -1
- package/dist/{mementoService-65C2EYD5.js → mementoService-I6G6GHMI.js} +3 -3
- package/dist/{src-SWWFC3US.js → src-7VD2AB4G.js} +1 -1
- package/dist/{src-FB7KXX74.js → src-NJXYCMQ4.js} +2 -2
- package/dist/store-JNTO6SRG.js +7 -0
- package/dist/{subtractCredits-GEE7TE3Y.js → subtractCredits-G43YXKVF.js} +3 -3
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -183,6 +183,7 @@ export SERPER_API_KEY="your-key-here"
|
|
|
183
183
|
- ✅ `current_datetime` - No API key needed
|
|
184
184
|
- ✅ `prompt_enhancement` - No API key needed
|
|
185
185
|
- ✅ `bash_execute` - No API key needed
|
|
186
|
+
- ✅ `recent_changes` - No API key needed (git-based file search by modification time)
|
|
186
187
|
- 🔑 `weather_info` - Requires `toolApiKeys.openweather`
|
|
187
188
|
- 🔑 `web_search` - Requires `toolApiKeys.serper`
|
|
188
189
|
- 🔑 `deep_research` - Requires `toolApiKeys.serper`
|
|
@@ -264,6 +265,36 @@ You can also run any MCP server via npx or custom executables:
|
|
|
264
265
|
|
|
265
266
|
**Note:** Internal MCP servers must be built and available in the `b4m-core/packages/mcp/dist/src/` directory. The CLI will automatically find them if you're running from the monorepo. For Docker-based servers, ensure Docker is installed and the image is accessible.
|
|
266
267
|
|
|
268
|
+
## Git-Aware Code Search
|
|
269
|
+
|
|
270
|
+
The CLI includes a `recent_changes` tool that uses git history to find recently modified files. This significantly speeds up debugging by narrowing the search space to recently changed code.
|
|
271
|
+
|
|
272
|
+
### Use Cases
|
|
273
|
+
|
|
274
|
+
- **Recent bug debugging:** "I just broke something, can you help fix it?"
|
|
275
|
+
- **Understanding feature development:** "What did we change for the new dashboard?"
|
|
276
|
+
- **Finding active development areas:** "What are we actively working on?"
|
|
277
|
+
- **Code review prep:** "What changed since last release?"
|
|
278
|
+
|
|
279
|
+
### Parameters
|
|
280
|
+
|
|
281
|
+
- `since` - Time range to search (default: "7 days ago")
|
|
282
|
+
- Examples: "2 hours ago", "3 days ago", "2025-01-01"
|
|
283
|
+
- `path` - Filter to specific directory (default: entire repo)
|
|
284
|
+
- Examples: "src/components", "apps/client", "**/*.test.ts"
|
|
285
|
+
- `limit` - Maximum files to return (default: 50)
|
|
286
|
+
- `include_stats` - Show lines added/removed (default: false)
|
|
287
|
+
|
|
288
|
+
### How It Works
|
|
289
|
+
|
|
290
|
+
The tool uses `git log` to track file modifications and returns:
|
|
291
|
+
- Files sorted by activity (most commits first)
|
|
292
|
+
- Commit messages for context
|
|
293
|
+
- Optional statistics showing lines changed
|
|
294
|
+
- Filtered results based on time and path
|
|
295
|
+
|
|
296
|
+
**Performance benefit:** Instead of searching 50+ files (5-10 minutes), find the 3 relevant files in ~30 seconds.
|
|
297
|
+
|
|
267
298
|
## Context Files
|
|
268
299
|
|
|
269
300
|
The CLI supports loading project-specific instructions from context files, similar to CLAUDE.md in Claude Code. These files provide persistent instructions that are automatically included in the agent's system prompt.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CurationArtifactType
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CRG4F6FD.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;
|
|
@@ -303,17 +303,8 @@ var b4mLLMTools = z5.enum([
|
|
|
303
303
|
"sunrise_sunset",
|
|
304
304
|
"iss_tracker",
|
|
305
305
|
"planet_visibility",
|
|
306
|
-
// File operation tools
|
|
307
|
-
"file_read",
|
|
308
|
-
"create_file",
|
|
309
|
-
"edit_local_file",
|
|
310
|
-
"glob_files",
|
|
311
|
-
"grep_search",
|
|
312
|
-
"delete_file",
|
|
313
306
|
// Knowledge base search
|
|
314
|
-
"search_knowledge_base"
|
|
315
|
-
// Shell execution
|
|
316
|
-
"bash_execute"
|
|
307
|
+
"search_knowledge_base"
|
|
317
308
|
]);
|
|
318
309
|
var B4MLLMToolsList = b4mLLMTools.options.map((tool) => tool);
|
|
319
310
|
var RechartsChartTypeSchema = z5.enum([
|
|
@@ -2253,6 +2244,8 @@ var SettingKeySchema = z21.enum([
|
|
|
2253
2244
|
"StreamIdleTimeoutSeconds",
|
|
2254
2245
|
"EnableMcpToolFiltering",
|
|
2255
2246
|
"McpToolFilteringMaxTools",
|
|
2247
|
+
// PARALLEL TOOL EXECUTION SETTINGS
|
|
2248
|
+
"EnableParallelToolExecution",
|
|
2256
2249
|
// LIVEOPS TRIAGE AUTOMATION SETTINGS
|
|
2257
2250
|
"liveopsTriageConfig"
|
|
2258
2251
|
]);
|
|
@@ -2672,7 +2665,8 @@ var API_SERVICE_GROUPS = {
|
|
|
2672
2665
|
{ key: "EnableStreamIdleTimeout", order: 12 },
|
|
2673
2666
|
{ key: "StreamIdleTimeoutSeconds", order: 13 },
|
|
2674
2667
|
{ key: "EnableMcpToolFiltering", order: 14 },
|
|
2675
|
-
{ key: "McpToolFilteringMaxTools", order: 15 }
|
|
2668
|
+
{ key: "McpToolFilteringMaxTools", order: 15 },
|
|
2669
|
+
{ key: "EnableParallelToolExecution", order: 16 }
|
|
2676
2670
|
]
|
|
2677
2671
|
},
|
|
2678
2672
|
NOTEBOOK: {
|
|
@@ -3813,6 +3807,16 @@ var settingsMap = {
|
|
|
3813
3807
|
group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
|
|
3814
3808
|
order: 15
|
|
3815
3809
|
}),
|
|
3810
|
+
// Parallel Tool Execution Settings
|
|
3811
|
+
EnableParallelToolExecution: makeBooleanSetting({
|
|
3812
|
+
key: "EnableParallelToolExecution",
|
|
3813
|
+
name: "Enable Parallel Tool Execution",
|
|
3814
|
+
defaultValue: false,
|
|
3815
|
+
description: "Execute read-only tools (file reads, searches) in parallel for 2-3x speed improvement. Write tools still execute sequentially for safety.",
|
|
3816
|
+
category: "Experimental",
|
|
3817
|
+
group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
|
|
3818
|
+
order: 16
|
|
3819
|
+
}),
|
|
3816
3820
|
liveopsTriageConfig: makeObjectSetting({
|
|
3817
3821
|
key: "liveopsTriageConfig",
|
|
3818
3822
|
name: "LiveOps Triage Configuration",
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/store/index.ts
|
|
4
|
+
import { create } from "zustand";
|
|
5
|
+
var useCliStore = create((set) => ({
|
|
6
|
+
// Session state
|
|
7
|
+
session: null,
|
|
8
|
+
setSession: (session) => set({ session }),
|
|
9
|
+
addMessage: (message) => set((state) => {
|
|
10
|
+
if (!state.session) return state;
|
|
11
|
+
return {
|
|
12
|
+
session: {
|
|
13
|
+
...state.session,
|
|
14
|
+
messages: [...state.session.messages, message],
|
|
15
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}),
|
|
19
|
+
// Pending messages
|
|
20
|
+
pendingMessages: [],
|
|
21
|
+
addPendingMessage: (message) => set((state) => ({ pendingMessages: [...state.pendingMessages, message] })),
|
|
22
|
+
updatePendingMessage: (index, message) => set((state) => {
|
|
23
|
+
const updated = [...state.pendingMessages];
|
|
24
|
+
updated[index] = message;
|
|
25
|
+
return { pendingMessages: updated };
|
|
26
|
+
}),
|
|
27
|
+
clearPendingMessages: () => set({ pendingMessages: [] }),
|
|
28
|
+
completePendingMessage: (index, finalMessage) => set((state) => {
|
|
29
|
+
const pending = [...state.pendingMessages];
|
|
30
|
+
pending.splice(index, 1);
|
|
31
|
+
const session = state.session;
|
|
32
|
+
if (!session) return { pendingMessages: pending };
|
|
33
|
+
return {
|
|
34
|
+
pendingMessages: pending,
|
|
35
|
+
session: {
|
|
36
|
+
...session,
|
|
37
|
+
messages: [...session.messages, finalMessage],
|
|
38
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}),
|
|
42
|
+
// UI state
|
|
43
|
+
isThinking: false,
|
|
44
|
+
setIsThinking: (thinking) => set({ isThinking: thinking }),
|
|
45
|
+
// Input state (for Ctrl+C clearing)
|
|
46
|
+
inputValue: "",
|
|
47
|
+
setInputValue: (value) => set({ inputValue: value }),
|
|
48
|
+
clearInput: () => set({ inputValue: "" }),
|
|
49
|
+
// Permission prompt
|
|
50
|
+
permissionPrompt: null,
|
|
51
|
+
setPermissionPrompt: (prompt) => set({ permissionPrompt: prompt }),
|
|
52
|
+
// Config editor
|
|
53
|
+
showConfigEditor: false,
|
|
54
|
+
setShowConfigEditor: (show) => set({ showConfigEditor: show }),
|
|
55
|
+
// MCP viewer
|
|
56
|
+
showMcpViewer: false,
|
|
57
|
+
setShowMcpViewer: (show) => set({ showMcpViewer: show }),
|
|
58
|
+
// Auto-accept edits toggle (Shift+Tab)
|
|
59
|
+
autoAcceptEdits: false,
|
|
60
|
+
toggleAutoAcceptEdits: () => set((state) => ({ autoAcceptEdits: !state.autoAcceptEdits })),
|
|
61
|
+
// Exit handling
|
|
62
|
+
exitRequested: false,
|
|
63
|
+
setExitRequested: (requested) => set({ exitRequested: requested })
|
|
64
|
+
}));
|
|
65
|
+
|
|
66
|
+
export {
|
|
67
|
+
useCliStore
|
|
68
|
+
};
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
getSettingsByNames,
|
|
7
7
|
obfuscateApiKey,
|
|
8
8
|
secureParameters
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KGERFIL4.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiKeyType,
|
|
12
12
|
MementoTier,
|
|
13
13
|
isSupportedEmbeddingModel
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CRG4F6FD.js";
|
|
15
15
|
|
|
16
16
|
// ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
|
|
17
17
|
import { z } from "zod";
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
getSettingsMap,
|
|
8
8
|
getSettingsValue,
|
|
9
9
|
secureParameters
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KGERFIL4.js";
|
|
11
11
|
import {
|
|
12
12
|
KnowledgeType,
|
|
13
13
|
SupportedFabFileMimeTypes
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CRG4F6FD.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-KGERFIL4.js";
|
|
6
6
|
import {
|
|
7
7
|
CompletionApiUsageTransaction,
|
|
8
8
|
GenericCreditDeductTransaction,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
TextGenerationUsageTransaction,
|
|
13
13
|
TransferCreditTransaction,
|
|
14
14
|
VideoGenerationUsageTransaction
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-CRG4F6FD.js";
|
|
16
16
|
|
|
17
17
|
// ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
|
|
18
18
|
import { z } from "zod";
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createFabFile,
|
|
4
4
|
createFabFileSchema
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-QDD3PG2I.js";
|
|
6
|
+
import "./chunk-KGERFIL4.js";
|
|
7
|
+
import "./chunk-CRG4F6FD.js";
|
|
8
8
|
import "./chunk-OCYRD7D6.js";
|
|
9
9
|
export {
|
|
10
10
|
createFabFile,
|