@tyvm/knowhow 0.0.26 → 0.0.28
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/CONFIG.md +38 -0
- package/PROCESSING.md +429 -0
- package/WORKER.md +425 -0
- package/package.json +1 -1
- package/src/chat.ts +5 -5
- package/src/clients/anthropic.ts +0 -5
- package/src/clients/gemini.ts +0 -4
- package/src/clients/openai.ts +0 -3
- package/src/clients/xai.ts +0 -2
- package/src/embeddings.ts +25 -10
- package/ts_build/src/chat.js +1 -1
- package/ts_build/src/chat.js.map +1 -1
- package/ts_build/src/clients/anthropic.js +0 -5
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/clients/gemini.js +0 -1
- package/ts_build/src/clients/gemini.js.map +1 -1
- package/ts_build/src/clients/openai.js +0 -3
- package/ts_build/src/clients/openai.js.map +1 -1
- package/ts_build/src/clients/xai.js +0 -2
- package/ts_build/src/clients/xai.js.map +1 -1
- package/ts_build/src/embeddings.js +13 -9
- package/ts_build/src/embeddings.js.map +1 -1
package/WORKER.md
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
# Knowhow Workers Guide
|
|
2
|
+
|
|
3
|
+
Knowhow workers allow you to expose your local tools and development environment to the Knowhow platform, enabling remote agents to execute commands, access files, and leverage your local setup through a secure WebSocket connection.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
### 1. Initial Setup
|
|
10
|
+
|
|
11
|
+
First, authenticate with the Knowhow platform:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
knowhow login
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
This will open your browser and guide you through the authentication process.
|
|
18
|
+
|
|
19
|
+
### 2. Generate Worker Configuration
|
|
20
|
+
|
|
21
|
+
Run the worker command to generate the initial configuration:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
knowhow worker
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This will:
|
|
28
|
+
- Generate a `worker` configuration block in your `knowhow.json`
|
|
29
|
+
- Display available tools that can be exposed
|
|
30
|
+
- Create a secure connection to the Knowhow platform
|
|
31
|
+
|
|
32
|
+
### 3. Configure Allowed Tools
|
|
33
|
+
|
|
34
|
+
Edit your `knowhow.json` to specify which tools you want to expose:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"worker": {
|
|
39
|
+
"allowedTools": [
|
|
40
|
+
"readFile",
|
|
41
|
+
"writeFileChunk",
|
|
42
|
+
"patchFile",
|
|
43
|
+
"execCommand",
|
|
44
|
+
"textSearch",
|
|
45
|
+
"fileSearch",
|
|
46
|
+
"embeddingSearch"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 4. Start the Worker
|
|
53
|
+
|
|
54
|
+
Run the worker again to start the connection:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
knowhow worker
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Your local tools are now available to Knowhow behaviors and agents!
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Worker Architecture
|
|
65
|
+
|
|
66
|
+
### WebSocket Connection
|
|
67
|
+
|
|
68
|
+
Workers establish a secure WebSocket connection to the Knowhow platform:
|
|
69
|
+
|
|
70
|
+
- **Authentication**: Uses your login credentials for secure access
|
|
71
|
+
- **Real-time Communication**: Enables instant tool execution requests
|
|
72
|
+
- **Automatic Reconnection**: Handles network interruptions gracefully
|
|
73
|
+
- **Tool Allowlisting**: Only exposed tools can be executed remotely
|
|
74
|
+
|
|
75
|
+
### MCP Integration
|
|
76
|
+
|
|
77
|
+
Workers leverage the Model Context Protocol (MCP) to expose tools:
|
|
78
|
+
|
|
79
|
+
- **Tool Registration**: Local tools are registered as MCP resources
|
|
80
|
+
- **Parameter Validation**: Ensures proper argument types and requirements
|
|
81
|
+
- **Error Handling**: Provides detailed error messages for debugging
|
|
82
|
+
- **Response Formatting**: Standardizes tool outputs for agent consumption
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Configuration
|
|
87
|
+
|
|
88
|
+
### Basic Worker Configuration
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"worker": {
|
|
93
|
+
"allowedTools": [
|
|
94
|
+
"readFile",
|
|
95
|
+
"writeFileChunk",
|
|
96
|
+
"patchFile",
|
|
97
|
+
"lintFile",
|
|
98
|
+
"execCommand",
|
|
99
|
+
"textSearch",
|
|
100
|
+
"fileSearch",
|
|
101
|
+
"embeddingSearch"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Advanced Configuration
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"worker": {
|
|
112
|
+
"allowedTools": [
|
|
113
|
+
"readFile",
|
|
114
|
+
"writeFileChunk",
|
|
115
|
+
"patchFile",
|
|
116
|
+
"lintFile",
|
|
117
|
+
"execCommand",
|
|
118
|
+
"textSearch",
|
|
119
|
+
"fileSearch",
|
|
120
|
+
"embeddingSearch",
|
|
121
|
+
"createAiCompletion",
|
|
122
|
+
"listAllModels",
|
|
123
|
+
"callPlugin"
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Available Tools
|
|
132
|
+
|
|
133
|
+
### File Operations
|
|
134
|
+
|
|
135
|
+
#### Core File Tools
|
|
136
|
+
- **`readFile`** - Read complete file contents
|
|
137
|
+
- **`writeFileChunk`** - Write content to files (supports chunking for large files)
|
|
138
|
+
- **`patchFile`** - Apply unified diff patches to files
|
|
139
|
+
- **`readBlocks`** - Read specific blocks from files
|
|
140
|
+
|
|
141
|
+
#### Search Tools
|
|
142
|
+
- **`textSearch`** - Search for exact text matches across files
|
|
143
|
+
- **`fileSearch`** - Search for files by path patterns
|
|
144
|
+
- **`embeddingSearch`** - Semantic search using embeddings
|
|
145
|
+
|
|
146
|
+
### Development Tools
|
|
147
|
+
|
|
148
|
+
#### Code Quality
|
|
149
|
+
- **`lintFile`** - Run linters on files based on extension
|
|
150
|
+
- **`execCommand`** - Execute shell commands with timeout support
|
|
151
|
+
|
|
152
|
+
#### AI Integration
|
|
153
|
+
- **`createAiCompletion`** - Create AI completions using configured models
|
|
154
|
+
- **`listAllModels`** - List available AI models
|
|
155
|
+
- **`listAllProviders`** - List available AI providers
|
|
156
|
+
|
|
157
|
+
### Plugin System
|
|
158
|
+
- **`callPlugin`** - Execute plugin functions
|
|
159
|
+
- **`addLanguageTerm`** - Add language terms for context loading
|
|
160
|
+
- **`getAllLanguageTerms`** - Retrieve all configured language terms
|
|
161
|
+
- **`lookupLanguageTerm`** - Look up specific language terms
|
|
162
|
+
|
|
163
|
+
### Integration Tools
|
|
164
|
+
|
|
165
|
+
#### Version Control
|
|
166
|
+
- **`getPullRequest`** - Fetch GitHub pull request information
|
|
167
|
+
- **`getPullRequestBuildStatuses`** - Get build status for PRs
|
|
168
|
+
- **`getRunLogs`** - Retrieve GitHub Actions run logs
|
|
169
|
+
- **`getPullRequestBuildFailureLogs`** - Get failure logs from PR builds
|
|
170
|
+
|
|
171
|
+
### MCP Server Tools
|
|
172
|
+
|
|
173
|
+
When MCP servers are configured, their tools become available with prefixed names:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"mcps": [
|
|
178
|
+
{
|
|
179
|
+
"name": "browser",
|
|
180
|
+
"command": "npx",
|
|
181
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"worker": {
|
|
185
|
+
"allowedTools": [
|
|
186
|
+
"mcp_0_browser_navigate",
|
|
187
|
+
"mcp_0_browser_screenshot",
|
|
188
|
+
"mcp_0_browser_click",
|
|
189
|
+
"mcp_0_browser_fill",
|
|
190
|
+
"mcp_0_browser_select"
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Security Considerations
|
|
199
|
+
|
|
200
|
+
### Tool Allowlisting
|
|
201
|
+
|
|
202
|
+
Only tools explicitly listed in `allowedTools` can be executed remotely:
|
|
203
|
+
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"worker": {
|
|
207
|
+
"allowedTools": [
|
|
208
|
+
"readFile", // ✅ Allowed
|
|
209
|
+
"writeFileChunk", // ✅ Allowed
|
|
210
|
+
// "execCommand" // ❌ Not allowed - commented out
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### File System Access
|
|
217
|
+
|
|
218
|
+
Workers respect the project directory boundaries:
|
|
219
|
+
- **Limited Scope**: Only files within the project directory are accessible
|
|
220
|
+
- **Path Validation**: Prevents directory traversal attacks
|
|
221
|
+
- **Permission Checks**: Respects file system permissions
|
|
222
|
+
|
|
223
|
+
### Command Execution
|
|
224
|
+
|
|
225
|
+
When `execCommand` is enabled:
|
|
226
|
+
- **Timeout Protection**: Commands have configurable timeouts
|
|
227
|
+
- **Process Isolation**: Commands run in separate processes
|
|
228
|
+
- **Error Handling**: Captures both stdout and stderr
|
|
229
|
+
- **Security Warning**: Be cautious with command execution in untrusted environments
|
|
230
|
+
|
|
231
|
+
### Network Security
|
|
232
|
+
|
|
233
|
+
- **Encrypted Connection**: All communication uses WebSocket Secure (WSS)
|
|
234
|
+
- **Authentication Required**: Valid Knowhow credentials required
|
|
235
|
+
- **Session Management**: Automatic session expiration and renewal
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Integration with Knowhow Behaviors
|
|
240
|
+
|
|
241
|
+
### Creating Worker-Enabled Behaviors
|
|
242
|
+
|
|
243
|
+
Behaviors can leverage worker tools through the Knowhow platform:
|
|
244
|
+
|
|
245
|
+
```json
|
|
246
|
+
{
|
|
247
|
+
"name": "Code Reviewer",
|
|
248
|
+
"description": "Reviews code changes and provides feedback",
|
|
249
|
+
"instructions": "Use readFile to examine code, textSearch to find patterns, and writeFileChunk to create review comments",
|
|
250
|
+
"tools": ["worker_0_readFile", "worker_0_textSearch", "worker_0_writeFileChunk"],
|
|
251
|
+
"workers": ["worker_connection_id"]
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Tool Usage in Agents
|
|
256
|
+
|
|
257
|
+
Agents can call worker tools directly:
|
|
258
|
+
|
|
259
|
+
```javascript
|
|
260
|
+
// Agent can read local files
|
|
261
|
+
const fileContent = await callTool('readFile', {
|
|
262
|
+
filePath: './src/components/Header.tsx'
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Search for patterns in codebase
|
|
266
|
+
const searchResults = await callTool('textSearch', {
|
|
267
|
+
searchTerm: 'useState'
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
// Apply code changes
|
|
271
|
+
await callTool('patchFile', {
|
|
272
|
+
filePath: './src/utils/helpers.ts',
|
|
273
|
+
patch: `--- a/src/utils/helpers.ts
|
|
274
|
+
+++ b/src/utils/helpers.ts
|
|
275
|
+
@@ -10,6 +10,7 @@
|
|
276
|
+
export function formatDate(date: Date): string {
|
|
277
|
+
+ if (!date) return '';
|
|
278
|
+
return date.toISOString().split('T')[0];
|
|
279
|
+
}`
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Command Line Usage
|
|
286
|
+
|
|
287
|
+
### Basic Commands
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Authenticate with Knowhow
|
|
291
|
+
knowhow login
|
|
292
|
+
|
|
293
|
+
# Generate worker configuration
|
|
294
|
+
knowhow worker
|
|
295
|
+
|
|
296
|
+
# Start worker with default config
|
|
297
|
+
knowhow worker
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Environment Variables
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Troubleshooting
|
|
305
|
+
|
|
306
|
+
### Common Issues
|
|
307
|
+
|
|
308
|
+
#### Connection Problems
|
|
309
|
+
|
|
310
|
+
**Issue**: Worker fails to connect
|
|
311
|
+
```
|
|
312
|
+
Error: WebSocket connection failed
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Solutions**:
|
|
316
|
+
1. Check internet connection
|
|
317
|
+
2. Verify authentication: `knowhow login`
|
|
318
|
+
3. Check firewall settings for WebSocket connections
|
|
319
|
+
|
|
320
|
+
#### Authentication Errors
|
|
321
|
+
|
|
322
|
+
**Issue**: Authentication failed
|
|
323
|
+
```
|
|
324
|
+
Error: Invalid credentials
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**Solutions**:
|
|
328
|
+
1. Re-authenticate: `knowhow login`
|
|
329
|
+
2. Check token expiration
|
|
330
|
+
3. Verify organization permissions
|
|
331
|
+
|
|
332
|
+
#### Tool Execution Failures
|
|
333
|
+
|
|
334
|
+
**Issue**: Tool not found or not allowed
|
|
335
|
+
```
|
|
336
|
+
Error: Function readFile not enabled
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Solutions**:
|
|
340
|
+
1. Add tool to `allowedTools` in `knowhow.json`
|
|
341
|
+
2. Restart worker after configuration changes
|
|
342
|
+
3. Verify tool name spelling
|
|
343
|
+
|
|
344
|
+
## Best Practices
|
|
345
|
+
|
|
346
|
+
### Security
|
|
347
|
+
|
|
348
|
+
1. **Principle of Least Privilege**: Only expose necessary tools
|
|
349
|
+
2. **Regular Audits**: Review `allowedTools` periodically
|
|
350
|
+
3. **Environment Separation**: Use different configurations for dev/prod
|
|
351
|
+
4. **Command Restrictions**: Be cautious with `execCommand` permissions
|
|
352
|
+
|
|
353
|
+
### Development Workflow
|
|
354
|
+
|
|
355
|
+
1. **Version Control**: Include `knowhow.json` in version control
|
|
356
|
+
2. **Team Coordination**: Document tool requirements for team members
|
|
357
|
+
3. **Testing**: Test worker configuration before deploying behaviors
|
|
358
|
+
4. **Documentation**: Document custom tools and their usage
|
|
359
|
+
|
|
360
|
+
### Maintenance
|
|
361
|
+
1. **Regular Updates**: Keep Knowhow CLI updated
|
|
362
|
+
2. **Log Monitoring**: Review worker logs for issues
|
|
363
|
+
3. **Configuration Backup**: Backup working configurations
|
|
364
|
+
4. **Health Checks**: Implement monitoring for worker connectivity
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Examples
|
|
369
|
+
|
|
370
|
+
### Development Environment Setup
|
|
371
|
+
|
|
372
|
+
```json
|
|
373
|
+
{
|
|
374
|
+
"worker": {
|
|
375
|
+
"allowedTools": [
|
|
376
|
+
"readFile",
|
|
377
|
+
"writeFileChunk",
|
|
378
|
+
"patchFile",
|
|
379
|
+
"textSearch",
|
|
380
|
+
"fileSearch",
|
|
381
|
+
"embeddingSearch",
|
|
382
|
+
"execCommand",
|
|
383
|
+
"lintFile"
|
|
384
|
+
]
|
|
385
|
+
},
|
|
386
|
+
"mcps": [
|
|
387
|
+
{
|
|
388
|
+
"name": "browser",
|
|
389
|
+
"command": "npx",
|
|
390
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
391
|
+
}
|
|
392
|
+
]
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Production Environment (Restricted)
|
|
397
|
+
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"worker": {
|
|
401
|
+
"allowedTools": [
|
|
402
|
+
"readFile",
|
|
403
|
+
"textSearch",
|
|
404
|
+
"fileSearch",
|
|
405
|
+
"embeddingSearch"
|
|
406
|
+
]
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Code Review Workflow
|
|
412
|
+
|
|
413
|
+
```json
|
|
414
|
+
{
|
|
415
|
+
"worker": {
|
|
416
|
+
"allowedTools": [
|
|
417
|
+
"readFile",
|
|
418
|
+
"textSearch",
|
|
419
|
+
"getPullRequest",
|
|
420
|
+
"getPullRequestBuildStatuses",
|
|
421
|
+
"lintFile"
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
```
|
package/package.json
CHANGED
package/src/chat.ts
CHANGED
|
@@ -293,11 +293,6 @@ export async function chatLoop<E extends GptQuestionEmbedding>(
|
|
|
293
293
|
default:
|
|
294
294
|
console.log("Thinking...");
|
|
295
295
|
console.log(input);
|
|
296
|
-
const formattedPrompt = await formatChatInput(
|
|
297
|
-
input,
|
|
298
|
-
plugins,
|
|
299
|
-
chatHistory
|
|
300
|
-
);
|
|
301
296
|
const interaction = {
|
|
302
297
|
input,
|
|
303
298
|
output: "",
|
|
@@ -311,6 +306,11 @@ export async function chatLoop<E extends GptQuestionEmbedding>(
|
|
|
311
306
|
interaction,
|
|
312
307
|
});
|
|
313
308
|
} else {
|
|
309
|
+
const formattedPrompt = await formatChatInput(
|
|
310
|
+
input,
|
|
311
|
+
plugins,
|
|
312
|
+
chatHistory
|
|
313
|
+
);
|
|
314
314
|
results = await askAI(formattedPrompt, provider, model);
|
|
315
315
|
interaction.output = results;
|
|
316
316
|
console.log(Marked.parse(results || "No response from the AI"));
|
package/src/clients/anthropic.ts
CHANGED
|
@@ -127,7 +127,6 @@ export class GenericAnthropicClient extends Anthropic implements GenericClient {
|
|
|
127
127
|
|
|
128
128
|
const firstUserMessage = groupedMessages.find((m) => m.role === "user");
|
|
129
129
|
if (firstUserMessage) {
|
|
130
|
-
console.log("caching first user message");
|
|
131
130
|
this.cacheLastContent(firstUserMessage);
|
|
132
131
|
}
|
|
133
132
|
|
|
@@ -139,7 +138,6 @@ export class GenericAnthropicClient extends Anthropic implements GenericClient {
|
|
|
139
138
|
|
|
140
139
|
for (const m of lastTwoUserMessages) {
|
|
141
140
|
if (Array.isArray(m.content)) {
|
|
142
|
-
console.log("caching user message");
|
|
143
141
|
this.cacheLastContent(m);
|
|
144
142
|
}
|
|
145
143
|
}
|
|
@@ -241,7 +239,6 @@ export class GenericAnthropicClient extends Anthropic implements GenericClient {
|
|
|
241
239
|
.join("\n");
|
|
242
240
|
|
|
243
241
|
const claudeMessages = this.transformMessages(options.messages);
|
|
244
|
-
console.log(JSON.stringify({ claudeMessages }, null, 2));
|
|
245
242
|
|
|
246
243
|
const tools = this.transformTools(options.tools);
|
|
247
244
|
try {
|
|
@@ -363,7 +360,6 @@ export class GenericAnthropicClient extends Anthropic implements GenericClient {
|
|
|
363
360
|
|
|
364
361
|
calculateCost(model: string, usage: Usage): number | undefined {
|
|
365
362
|
const pricing = this.pricesPerMillion()[model];
|
|
366
|
-
console.log({ pricing });
|
|
367
363
|
|
|
368
364
|
if (!pricing) {
|
|
369
365
|
return undefined;
|
|
@@ -382,7 +378,6 @@ export class GenericAnthropicClient extends Anthropic implements GenericClient {
|
|
|
382
378
|
const outputCost = (outputTokens * pricing.output) / 1e6;
|
|
383
379
|
|
|
384
380
|
const total = cachedInputCost + inputCost + outputCost;
|
|
385
|
-
console.log({ total });
|
|
386
381
|
return total;
|
|
387
382
|
}
|
|
388
383
|
|
package/src/clients/gemini.ts
CHANGED
|
@@ -451,10 +451,6 @@ export class GenericGeminiClient extends GoogleGenAI implements GenericClient {
|
|
|
451
451
|
contents: options.input,
|
|
452
452
|
});
|
|
453
453
|
|
|
454
|
-
console.log(
|
|
455
|
-
JSON.stringify({ googleEmbeddingResponse: googleEmbedding }, null, 2)
|
|
456
|
-
);
|
|
457
|
-
|
|
458
454
|
// Map Google EmbeddingResponse to generic EmbeddingResponse
|
|
459
455
|
const data = googleEmbedding.embeddings.map((e, index) => ({
|
|
460
456
|
object: "embedding", // Hardcode as per OpenAI's object type for embeddings
|
package/src/clients/openai.ts
CHANGED
|
@@ -55,7 +55,6 @@ export class GenericOpenAiClient extends OpenAI implements GenericClient {
|
|
|
55
55
|
}),
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
console.log(JSON.stringify({ response }, null, 2));
|
|
59
58
|
const usdCost = this.calculateCost(options.model, response.usage);
|
|
60
59
|
|
|
61
60
|
return {
|
|
@@ -205,7 +204,6 @@ export class GenericOpenAiClient extends OpenAI implements GenericClient {
|
|
|
205
204
|
): number | undefined {
|
|
206
205
|
const pricing = this.pricesPerMillion()[model];
|
|
207
206
|
|
|
208
|
-
console.log({ pricing });
|
|
209
207
|
if (!pricing) {
|
|
210
208
|
return undefined;
|
|
211
209
|
}
|
|
@@ -224,7 +222,6 @@ export class GenericOpenAiClient extends OpenAI implements GenericClient {
|
|
|
224
222
|
const outputCost = (outputTokens * pricing.output) / 1e6;
|
|
225
223
|
|
|
226
224
|
const total = cachedInputCost + inputCost + outputCost;
|
|
227
|
-
console.log({ total });
|
|
228
225
|
return total;
|
|
229
226
|
}
|
|
230
227
|
|
package/src/clients/xai.ts
CHANGED
|
@@ -49,7 +49,6 @@ export class GenericXAIClient extends OpenAI implements GenericClient {
|
|
|
49
49
|
}),
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
console.log(JSON.stringify({ response }, null, 2));
|
|
53
52
|
const usdCost = this.calculateCost(options.model, response.usage);
|
|
54
53
|
return {
|
|
55
54
|
choices: response.choices.map((choice) => ({
|
|
@@ -119,7 +118,6 @@ export class GenericXAIClient extends OpenAI implements GenericClient {
|
|
|
119
118
|
const outputCost = (outputTokens * pricing.output) / 1e6;
|
|
120
119
|
|
|
121
120
|
const total = inputCost + outputCost;
|
|
122
|
-
console.log({ total });
|
|
123
121
|
return total;
|
|
124
122
|
}
|
|
125
123
|
|
package/src/embeddings.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import glob from "glob";
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { getConfig, loadPrompt } from "./config";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
Config,
|
|
6
|
+
Hashes,
|
|
7
|
+
Embeddable,
|
|
8
|
+
EmbeddingBase,
|
|
9
|
+
Models,
|
|
10
|
+
EmbeddingModels,
|
|
11
|
+
} from "./types";
|
|
5
12
|
import {
|
|
6
13
|
readFile,
|
|
7
14
|
writeFile,
|
|
@@ -74,26 +81,34 @@ export async function embedSource(
|
|
|
74
81
|
return;
|
|
75
82
|
}
|
|
76
83
|
|
|
77
|
-
console.log("Embedding", source.input, "to", source.output);
|
|
78
|
-
let
|
|
84
|
+
console.log("Embedding", source.input.slice(0, 100), "... to", source.output);
|
|
85
|
+
let inputs = [];
|
|
86
|
+
|
|
87
|
+
const kind = source.kind || "file";
|
|
79
88
|
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
// Don't glob a paragraph or some other kind of input
|
|
90
|
+
if (kind === "file") {
|
|
91
|
+
inputs = await glob.sync(source.input, { ignore: ignorePattern });
|
|
82
92
|
}
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
if (
|
|
94
|
+
// It wasn't a file glob, so we need to loop through input
|
|
95
|
+
if (source.kind && inputs.length === 0) {
|
|
96
|
+
inputs = [source.input];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
console.log(`Found ${inputs.length} files`);
|
|
100
|
+
if (inputs.length > 100) {
|
|
86
101
|
console.error(
|
|
87
102
|
"woah there, that's a lot of files. I'm not going to embed that many"
|
|
88
103
|
);
|
|
89
104
|
}
|
|
90
|
-
console.log(
|
|
105
|
+
console.log(inputs);
|
|
91
106
|
const embeddings: Embeddable[] = await loadEmbedding(source.output);
|
|
92
107
|
let batch = [];
|
|
93
108
|
let index = 0;
|
|
94
|
-
for (const file of
|
|
109
|
+
for (const file of inputs) {
|
|
95
110
|
index++;
|
|
96
|
-
const shouldSave = batch.length > 20 || index ===
|
|
111
|
+
const shouldSave = batch.length > 20 || index === inputs.length;
|
|
97
112
|
if (shouldSave) {
|
|
98
113
|
await Promise.all(batch);
|
|
99
114
|
batch = [];
|
package/ts_build/src/chat.js
CHANGED
|
@@ -229,7 +229,6 @@ async function chatLoop(aiName, embeddings, plugins = []) {
|
|
|
229
229
|
default:
|
|
230
230
|
console.log("Thinking...");
|
|
231
231
|
console.log(input);
|
|
232
|
-
const formattedPrompt = await formatChatInput(input, plugins, chatHistory);
|
|
233
232
|
const interaction = {
|
|
234
233
|
input,
|
|
235
234
|
output: "",
|
|
@@ -244,6 +243,7 @@ async function chatLoop(aiName, embeddings, plugins = []) {
|
|
|
244
243
|
});
|
|
245
244
|
}
|
|
246
245
|
else {
|
|
246
|
+
const formattedPrompt = await formatChatInput(input, plugins, chatHistory);
|
|
247
247
|
results = await askAI(formattedPrompt, provider, model);
|
|
248
248
|
interaction.output = results;
|
|
249
249
|
console.log(utils_1.Marked.parse(results || "No response from the AI"));
|
package/ts_build/src/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
|