botholomew 0.16.0 → 0.16.3
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 +5 -0
- package/package.json +2 -1
- package/src/context/fetcher.ts +2 -2
- package/src/context/markdown-converter.ts +2 -2
- package/src/tui/App.tsx +134 -789
- package/src/tui/components/ContextPanel.tsx +7 -5
- package/src/tui/components/MessageList.tsx +44 -21
- package/src/tui/components/SchedulePanel.tsx +7 -5
- package/src/tui/components/TabBar.tsx +1 -1
- package/src/tui/components/TabPanels.tsx +108 -0
- package/src/tui/components/TaskPanel.tsx +7 -5
- package/src/tui/components/ThreadPanel.tsx +7 -5
- package/src/tui/components/ToolCall.tsx +3 -2
- package/src/tui/components/ToolPanel.tsx +9 -5
- package/src/tui/handleSubmit.ts +206 -0
- package/src/tui/hooks/useAppKeybindings.ts +166 -0
- package/src/tui/hooks/useCaptureTabCycle.ts +28 -0
- package/src/tui/hooks/useChatSession.ts +151 -0
- package/src/tui/hooks/useChatTitlePolling.ts +36 -0
- package/src/tui/hooks/useMessageQueue.ts +254 -0
- package/src/tui/hooks/useTerminalRows.ts +20 -0
- package/src/tui/keys.ts +24 -0
- package/src/tui/messages.ts +11 -0
- package/src/tui/restoreMessages.ts +106 -0
- package/src/tui/useTerminalSize.ts +26 -0
- package/src/tui/wrapDetail.ts +15 -0
- package/src/worker/fake-llm.ts +60 -0
- package/src/worker/fake-mcp.ts +134 -0
package/README.md
CHANGED
|
@@ -157,6 +157,11 @@ from `context/`.
|
|
|
157
157
|
|
|
158
158
|

|
|
159
159
|
|
|
160
|
+
Pulling a remote document straight into `context/` via an LLM-driven
|
|
161
|
+
fetcher (`mcp_search` → `mcp_exec` → save):
|
|
162
|
+
|
|
163
|
+

|
|
164
|
+
|
|
160
165
|
| Command | Purpose |
|
|
161
166
|
|---|---|
|
|
162
167
|
| `botholomew init` | Initialize the current directory as a project (refuses on iCloud/Dropbox/NFS without `--force`) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "botholomew",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.3",
|
|
4
4
|
"description": "An autonomous AI agent for knowledge work — works your task queue while you sleep.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"onnxruntime-web": "1.26.0-dev.20260416-b7804b056c",
|
|
43
43
|
"react": "^19.2.0",
|
|
44
44
|
"uuid": "^14.0.0",
|
|
45
|
+
"wrap-ansi": "^10.0.0",
|
|
45
46
|
"zod": "^4.4.2"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
package/src/context/fetcher.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Anthropic from "@anthropic-ai/sdk";
|
|
2
1
|
import type {
|
|
3
2
|
Tool as AnthropicTool,
|
|
4
3
|
MessageParam,
|
|
@@ -15,6 +14,7 @@ import { mcpSearchTool } from "../tools/mcp/search.ts";
|
|
|
15
14
|
import type { ToolContext } from "../tools/tool.ts";
|
|
16
15
|
import { type AnyToolDefinition, toAnthropicTool } from "../tools/tool.ts";
|
|
17
16
|
import { logger } from "../utils/logger.ts";
|
|
17
|
+
import { createLlmClient } from "../worker/llm-client.ts";
|
|
18
18
|
import { FetchFailureError } from "./fetcher-errors.ts";
|
|
19
19
|
import {
|
|
20
20
|
convertToMarkdown,
|
|
@@ -165,7 +165,7 @@ async function runFetcherLoop(
|
|
|
165
165
|
mcpxClient: McpxClient,
|
|
166
166
|
promptAddition?: string,
|
|
167
167
|
): Promise<FetchedContent | null> {
|
|
168
|
-
const client =
|
|
168
|
+
const client = createLlmClient(config);
|
|
169
169
|
|
|
170
170
|
const toolCtx: ToolContext = {
|
|
171
171
|
conn: null as unknown as DbConnection,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Anthropic from "@anthropic-ai/sdk";
|
|
2
1
|
import type { BotholomewConfig } from "../config/schemas.ts";
|
|
3
2
|
import { logger } from "../utils/logger.ts";
|
|
3
|
+
import { createLlmClient } from "../worker/llm-client.ts";
|
|
4
4
|
import { FetchFailureError } from "./fetcher-errors.ts";
|
|
5
5
|
|
|
6
6
|
const CONVERTER_MAX_TOKENS = 16_384;
|
|
@@ -122,7 +122,7 @@ export async function convertToMarkdown(
|
|
|
122
122
|
): Promise<string> {
|
|
123
123
|
if (!config.anthropic_api_key) return content;
|
|
124
124
|
|
|
125
|
-
const client =
|
|
125
|
+
const client = createLlmClient(config);
|
|
126
126
|
// Conversion is mechanical text-shaping — Haiku (the chunker model) is
|
|
127
127
|
// plenty smart for this and ~5x faster than Opus on long documents.
|
|
128
128
|
const model = config.chunker_model || config.model;
|