hoomanjs 1.32.0 → 1.34.0
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 +81 -264
- package/dist/acp/sessions/options.js +2 -2
- package/dist/acp/sessions/options.js.map +1 -1
- package/dist/acp/utils/tool-kind.js +1 -1
- package/dist/acp/utils/tool-kind.js.map +1 -1
- package/dist/acp/utils/tool-locations.js +1 -1
- package/dist/acp/utils/tool-locations.js.map +1 -1
- package/dist/chat/app.js +5 -19
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/components/ChromePicker.js +1 -1
- package/dist/chat/components/ChromePicker.js.map +1 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/configure/app.js +1000 -387
- package/dist/configure/app.js.map +1 -1
- package/dist/configure/index.js.map +1 -1
- package/dist/configure/types.d.ts +18 -0
- package/dist/core/agent/index.js +6 -4
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/config.d.ts +310 -80
- package/dist/core/config.js +93 -209
- package/dist/core/config.js.map +1 -1
- package/dist/core/mcp/manager.js +1 -1
- package/dist/core/mcp/manager.js.map +1 -1
- package/dist/core/mcp/oauth/provider.js.map +1 -1
- package/dist/core/mcp/prefixed-mcp-tool.d.ts +0 -1
- package/dist/core/mcp/prefixed-mcp-tool.js +0 -2
- package/dist/core/mcp/prefixed-mcp-tool.js.map +1 -1
- package/dist/core/models/anthropic.d.ts +3 -12
- package/dist/core/models/anthropic.js +20 -91
- package/dist/core/models/anthropic.js.map +1 -1
- package/dist/core/models/azure.d.ts +4 -0
- package/dist/core/models/azure.js +26 -0
- package/dist/core/models/azure.js.map +1 -0
- package/dist/core/models/bedrock.d.ts +3 -20
- package/dist/core/models/bedrock.js +22 -18
- package/dist/core/models/bedrock.js.map +1 -1
- package/dist/core/models/google.d.ts +2 -9
- package/dist/core/models/google.js +12 -31
- package/dist/core/models/google.js.map +1 -1
- package/dist/core/models/groq.d.ts +2 -9
- package/dist/core/models/groq.js +15 -25
- package/dist/core/models/groq.js.map +1 -1
- package/dist/core/models/index.d.ts +2 -1
- package/dist/core/models/index.js +3 -0
- package/dist/core/models/index.js.map +1 -1
- package/dist/core/models/minimax.d.ts +2 -0
- package/dist/core/models/minimax.js +11 -0
- package/dist/core/models/minimax.js.map +1 -0
- package/dist/core/models/moonshot.d.ts +2 -10
- package/dist/core/models/moonshot.js +23 -38
- package/dist/core/models/moonshot.js.map +1 -1
- package/dist/core/models/ollama/index.d.ts +2 -1
- package/dist/core/models/ollama/index.js +14 -3
- package/dist/core/models/ollama/index.js.map +1 -1
- package/dist/core/models/openai.d.ts +3 -4
- package/dist/core/models/openai.js +20 -3
- package/dist/core/models/openai.js.map +1 -1
- package/dist/core/models/openrouter.d.ts +4 -0
- package/dist/core/models/openrouter.js +23 -0
- package/dist/core/models/openrouter.js.map +1 -0
- package/dist/core/models/types.d.ts +346 -0
- package/dist/core/models/types.js +220 -0
- package/dist/core/models/types.js.map +1 -0
- package/dist/core/models/xai.d.ts +2 -9
- package/dist/core/models/xai.js +15 -25
- package/dist/core/models/xai.js.map +1 -1
- package/dist/core/modes/definitions.js +2 -2
- package/dist/core/modes/definitions.js.map +1 -1
- package/dist/core/prompts/harness/behaviour.md +10 -16
- package/dist/core/prompts/harness/communication.md +10 -19
- package/dist/core/prompts/harness/execution.md +8 -22
- package/dist/core/prompts/harness/guardrails.md +11 -18
- package/dist/core/prompts/modes/ask.md +6 -17
- package/dist/core/prompts/modes/plan.md +8 -25
- package/dist/core/prompts/runtime.js +2 -1
- package/dist/core/prompts/runtime.js.map +1 -1
- package/dist/core/prompts/static/filesystem.md +6 -36
- package/dist/core/prompts/static/planning.md +9 -32
- package/dist/core/prompts/static/shell.md +7 -30
- package/dist/core/prompts/static/skills.md +5 -16
- package/dist/core/prompts/static/web-search.md +6 -41
- package/dist/core/ripgrep/bootstrap.d.ts +1 -0
- package/dist/core/ripgrep/bootstrap.js +191 -0
- package/dist/core/ripgrep/bootstrap.js.map +1 -0
- package/dist/core/ripgrep/exec.d.ts +38 -0
- package/dist/core/ripgrep/exec.js +320 -0
- package/dist/core/ripgrep/exec.js.map +1 -0
- package/dist/core/ripgrep/index.d.ts +2 -0
- package/dist/core/ripgrep/index.js +3 -0
- package/dist/core/ripgrep/index.js.map +1 -0
- package/dist/core/ripgrep/tool.d.ts +18 -0
- package/dist/core/ripgrep/tool.js +101 -0
- package/dist/core/ripgrep/tool.js.map +1 -0
- package/dist/core/skills/built-in/hooman-config/SKILL.md +87 -193
- package/dist/core/state/tool-approvals.js +1 -1
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/subagents/research.js +1 -1
- package/dist/core/subagents/research.js.map +1 -1
- package/dist/core/subagents/runner.js +1 -1
- package/dist/core/subagents/runner.js.map +1 -1
- package/dist/core/tools/filesystem.d.ts +0 -5
- package/dist/core/tools/filesystem.js +4 -69
- package/dist/core/tools/filesystem.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -0
- package/dist/core/tools/grep.js +2 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +1 -0
- package/dist/core/tools/index.js +1 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/shell.js.map +1 -1
- package/dist/core/utils/paths.d.ts +3 -0
- package/dist/core/utils/paths.js +3 -0
- package/dist/core/utils/paths.js.map +1 -1
- package/dist/core/utils/ripgrep.d.ts +1 -0
- package/dist/core/utils/ripgrep.js +2 -0
- package/dist/core/utils/ripgrep.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ It gives you a practical toolkit to build and run agent workflows:
|
|
|
21
21
|
- a one-shot `exec` command for single prompts
|
|
22
22
|
- a stateful `chat` interface for iterative sessions
|
|
23
23
|
- a `daemon` command for channel-driven MCP automation
|
|
24
|
-
- an in-chat `/config` workflow (Ink-powered) for
|
|
24
|
+
- an in-chat `/config` workflow (Ink-powered) for general settings, models, MCP servers, and installed skills
|
|
25
25
|
- an `acp` command for running Hooman as an Agent Client Protocol (ACP) agent over stdio
|
|
26
26
|
|
|
27
27
|
## Related
|
|
@@ -30,7 +30,7 @@ It gives you a practical toolkit to build and run agent workflows:
|
|
|
30
30
|
|
|
31
31
|
## Features
|
|
32
32
|
|
|
33
|
-
- Multiple LLM providers: `anthropic`, `bedrock`, `google`, `groq`, `moonshot`, `ollama`, `openai`, `xai`
|
|
33
|
+
- Multiple LLM providers: `anthropic`, `azure`, `bedrock`, `google`, `groq`, `minimax`, `moonshot`, `ollama`, `openai`, `openrouter`, `xai`
|
|
34
34
|
- Local configuration under `~/.hooman`
|
|
35
35
|
- Optional web search tool with provider selection (`brave`, `exa`, `firecrawl`, `serper`, or `tavily`)
|
|
36
36
|
- MCP server support via `stdio`, `streamable-http`, and `sse`
|
|
@@ -39,6 +39,7 @@ It gives you a practical toolkit to build and run agent workflows:
|
|
|
39
39
|
- Runtime skills via Strands `AgentSkills`, loading bundled built-in skills plus local `~/.hooman/skills`
|
|
40
40
|
- Bundled prompt harness toggles (`behaviour`, `communication`, `execution`, `guardrails`); coding guidance ships as the built-in `hooman-coding` skill
|
|
41
41
|
- Built-in research sub-agent runner (`research`) with configurable concurrency
|
|
42
|
+
- Built-in `grep` tool backed by ripgrep (`rg`), with runtime bootstrap when `rg` is not available on PATH
|
|
42
43
|
- Toolkit-oriented architecture with configurable tools, prompts, and transports
|
|
43
44
|
- Interactive terminal UI for chat and configuration
|
|
44
45
|
|
|
@@ -263,11 +264,12 @@ The configuration workflow is launched from inside a `chat` session with the `/c
|
|
|
263
264
|
|
|
264
265
|
The configuration UI currently lets you:
|
|
265
266
|
|
|
266
|
-
-
|
|
267
|
+
- manage general settings such as name, prompts, tools, and compaction
|
|
268
|
+
- manage models and providers with field-by-field editors
|
|
267
269
|
- choose search provider and set its API key
|
|
268
270
|
- toggle bundled harness prompts (`behaviour`, `communication`, `execution`, `guardrails`)
|
|
269
271
|
- edit `instructions.md` in your `$VISUAL` / `$EDITOR` (cross-platform fallback included)
|
|
270
|
-
- add, edit, and delete MCP servers with confirmation
|
|
272
|
+
- add, edit, and delete MCP servers with field-by-field editors and confirmation
|
|
271
273
|
- search, install, refresh, and remove skills
|
|
272
274
|
|
|
273
275
|
### `hooman acp`
|
|
@@ -300,32 +302,37 @@ Important files and folders:
|
|
|
300
302
|
- `instructions.md` - system instructions used to build the agent prompt
|
|
301
303
|
- `mcp.json` - MCP server definitions
|
|
302
304
|
- `skills/` - installed skills
|
|
305
|
+
- `bin/` - runtime-managed helper binaries (including bootstrapped `rg` for the `grep` tool when system `rg` is unavailable)
|
|
306
|
+
- `cache/` - runtime caches used by tools and subsystems
|
|
303
307
|
- `sessions/` - persisted session data
|
|
304
308
|
- `acp-sessions/` - persisted ACP session metadata and message snapshots
|
|
305
309
|
|
|
310
|
+
`grep` tool binary resolution order:
|
|
311
|
+
|
|
312
|
+
1. Use system `rg` when available.
|
|
313
|
+
2. Else use cached `~/.hooman/bin/rg` (or `rg.exe` on Windows).
|
|
314
|
+
3. Else download and verify a platform-specific ripgrep release into `~/.hooman/bin/`.
|
|
315
|
+
|
|
306
316
|
## Example `config.json`
|
|
307
317
|
|
|
308
|
-
The on-disk shape uses a reusable **`providers`** array plus a non-empty **`llms`** array. Each provider stores
|
|
318
|
+
The on-disk shape uses a reusable **`providers`** array plus a non-empty **`llms`** array. Each provider stores a runtime `provider` id plus provider-specific `options`; each LLM references a provider by name, stores its model `options`, and marks one entry as the default. The bundled **hooman-config** skill documents the full schema.
|
|
309
319
|
|
|
310
320
|
```json
|
|
311
321
|
{
|
|
312
322
|
"name": "Hooman",
|
|
313
323
|
"providers": [
|
|
314
324
|
{
|
|
315
|
-
"name": "
|
|
316
|
-
"
|
|
317
|
-
|
|
318
|
-
"params": {}
|
|
319
|
-
}
|
|
325
|
+
"name": "Ollama",
|
|
326
|
+
"provider": "ollama",
|
|
327
|
+
"options": {}
|
|
320
328
|
}
|
|
321
329
|
],
|
|
322
330
|
"llms": [
|
|
323
331
|
{
|
|
324
332
|
"name": "Default",
|
|
333
|
+
"provider": "Ollama",
|
|
325
334
|
"options": {
|
|
326
|
-
"
|
|
327
|
-
"model": "gemma4:e4b",
|
|
328
|
-
"params": {}
|
|
335
|
+
"model": "gemma4:e4b"
|
|
329
336
|
},
|
|
330
337
|
"default": true
|
|
331
338
|
}
|
|
@@ -346,25 +353,12 @@ The on-disk shape uses a reusable **`providers`** array plus a non-empty **`llms
|
|
|
346
353
|
"guardrails": true
|
|
347
354
|
},
|
|
348
355
|
"tools": {
|
|
349
|
-
"todo": {
|
|
350
|
-
|
|
351
|
-
},
|
|
352
|
-
"
|
|
353
|
-
|
|
354
|
-
}
|
|
355
|
-
"filesystem": {
|
|
356
|
-
"enabled": true
|
|
357
|
-
},
|
|
358
|
-
"shell": {
|
|
359
|
-
"enabled": true
|
|
360
|
-
},
|
|
361
|
-
"sleep": {
|
|
362
|
-
"enabled": true
|
|
363
|
-
},
|
|
364
|
-
"agents": {
|
|
365
|
-
"enabled": true,
|
|
366
|
-
"concurrency": 2
|
|
367
|
-
}
|
|
356
|
+
"todo": { "enabled": true },
|
|
357
|
+
"fetch": { "enabled": true },
|
|
358
|
+
"filesystem": { "enabled": true },
|
|
359
|
+
"shell": { "enabled": true },
|
|
360
|
+
"sleep": { "enabled": true },
|
|
361
|
+
"agents": { "enabled": true, "concurrency": 2 }
|
|
368
362
|
},
|
|
369
363
|
"compaction": {
|
|
370
364
|
"ratio": 0.75,
|
|
@@ -377,19 +371,20 @@ Tool approvals are session-scoped and are not persisted in `config.json`.
|
|
|
377
371
|
|
|
378
372
|
Hooman enables Strands `ContextOffloader` by default with file-backed storage under `~/.hooman/sessions/offloaded-content`, so large tool results can be previewed in-context and retrieved later without bloating the active conversation window.
|
|
379
373
|
|
|
380
|
-
Supported `providers[].
|
|
374
|
+
Supported `providers[].provider` values registered in this release (see `src/core/models/index.ts`):
|
|
381
375
|
|
|
382
376
|
- `anthropic`
|
|
377
|
+
- `azure`
|
|
383
378
|
- `bedrock`
|
|
384
379
|
- `google`
|
|
385
380
|
- `groq`
|
|
381
|
+
- `minimax`
|
|
386
382
|
- `moonshot`
|
|
387
383
|
- `ollama`
|
|
388
384
|
- `openai`
|
|
385
|
+
- `openrouter`
|
|
389
386
|
- `xai`
|
|
390
387
|
|
|
391
|
-
The `LlmProvider` enum in `src/core/config.ts` may list additional strings for forwards compatibility; unknown providers are not loaded at runtime.
|
|
392
|
-
|
|
393
388
|
Supported `search.provider` values:
|
|
394
389
|
|
|
395
390
|
- `brave`
|
|
@@ -400,253 +395,62 @@ Supported `search.provider` values:
|
|
|
400
395
|
|
|
401
396
|
## Provider Notes
|
|
402
397
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
Good default for local usage. Example:
|
|
406
|
-
|
|
407
|
-
```json
|
|
408
|
-
{
|
|
409
|
-
"providers": [
|
|
410
|
-
{
|
|
411
|
-
"name": "ollama-local",
|
|
412
|
-
"options": {
|
|
413
|
-
"provider": "ollama",
|
|
414
|
-
"params": {}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
],
|
|
418
|
-
"llms": [
|
|
419
|
-
{
|
|
420
|
-
"name": "Default",
|
|
421
|
-
"options": {
|
|
422
|
-
"provider": "ollama-local",
|
|
423
|
-
"model": "gemma4:e4b",
|
|
424
|
-
"params": {}
|
|
425
|
-
},
|
|
426
|
-
"default": true
|
|
427
|
-
}
|
|
428
|
-
]
|
|
429
|
-
}
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
### OpenAI
|
|
433
|
-
|
|
434
|
-
Uses Strands **OpenAIModel** (Chat Completions). `apiKey` is optional if `OPENAI_API_KEY` is set. Use `clientConfig` for a custom base URL or other OpenAI client options (OpenAI-compatible proxies and gateways).
|
|
435
|
-
|
|
436
|
-
Example:
|
|
437
|
-
|
|
438
|
-
```json
|
|
439
|
-
{
|
|
440
|
-
"providers": [
|
|
441
|
-
{
|
|
442
|
-
"name": "openai",
|
|
443
|
-
"options": {
|
|
444
|
-
"provider": "openai",
|
|
445
|
-
"params": {
|
|
446
|
-
"apiKey": "..."
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
],
|
|
451
|
-
"llms": [
|
|
452
|
-
{
|
|
453
|
-
"name": "GPT-5",
|
|
454
|
-
"options": {
|
|
455
|
-
"provider": "openai",
|
|
456
|
-
"model": "gpt-5",
|
|
457
|
-
"params": {}
|
|
458
|
-
},
|
|
459
|
-
"default": true
|
|
460
|
-
}
|
|
461
|
-
]
|
|
462
|
-
}
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
OpenAI-compatible gateways that put token `usage` on the last streamed chunk together with `choices` are handled via a small stream shim so usage still surfaces in the UI.
|
|
466
|
-
|
|
467
|
-
### Anthropic
|
|
468
|
-
|
|
469
|
-
Uses Strands **AnthropicModel** (Anthropic Messages API). `apiKey` or `authToken`, optional `baseURL` and `headers` (merged into `clientConfig`), optional `clientConfig`, and model fields such as `temperature` and `maxTokens`. A prebuilt `client` is not configurable from JSON.
|
|
470
|
-
|
|
471
|
-
```json
|
|
472
|
-
{
|
|
473
|
-
"providers": [
|
|
474
|
-
{
|
|
475
|
-
"name": "anthropic",
|
|
476
|
-
"options": {
|
|
477
|
-
"provider": "anthropic",
|
|
478
|
-
"params": {
|
|
479
|
-
"apiKey": "..."
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
],
|
|
484
|
-
"llms": [
|
|
485
|
-
{
|
|
486
|
-
"name": "Claude Sonnet",
|
|
487
|
-
"options": {
|
|
488
|
-
"provider": "anthropic",
|
|
489
|
-
"model": "claude-sonnet-4-20250514",
|
|
490
|
-
"params": {
|
|
491
|
-
"temperature": 0.7
|
|
492
|
-
}
|
|
493
|
-
},
|
|
494
|
-
"default": true
|
|
495
|
-
}
|
|
496
|
-
]
|
|
497
|
-
}
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
### Google
|
|
501
|
-
|
|
502
|
-
Uses Strands `GoogleModel` on top of `@google/genai`. Top-level options like `apiKey`, `client`, `clientConfig`, and `builtInTools` are supported; other values go into Google generation params.
|
|
503
|
-
|
|
504
|
-
```json
|
|
505
|
-
{
|
|
506
|
-
"providers": [
|
|
507
|
-
{
|
|
508
|
-
"name": "google",
|
|
509
|
-
"options": {
|
|
510
|
-
"provider": "google",
|
|
511
|
-
"params": {
|
|
512
|
-
"apiKey": "..."
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
],
|
|
517
|
-
"llms": [
|
|
518
|
-
{
|
|
519
|
-
"name": "Gemini Flash",
|
|
520
|
-
"options": {
|
|
521
|
-
"provider": "google",
|
|
522
|
-
"model": "gemini-2.5-flash",
|
|
523
|
-
"params": {
|
|
524
|
-
"temperature": 0.7,
|
|
525
|
-
"maxOutputTokens": 2048,
|
|
526
|
-
"topP": 0.9,
|
|
527
|
-
"topK": 40
|
|
528
|
-
}
|
|
529
|
-
},
|
|
530
|
-
"default": true
|
|
531
|
-
}
|
|
532
|
-
]
|
|
533
|
-
}
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
### Bedrock
|
|
537
|
-
|
|
538
|
-
Supports `region`, `clientConfig`, and optional `apiKey`, with all other values forwarded as Bedrock model options.
|
|
398
|
+
Provider entries now look like:
|
|
539
399
|
|
|
540
400
|
```json
|
|
541
401
|
{
|
|
542
|
-
"
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
"provider": "bedrock",
|
|
547
|
-
"params": {
|
|
548
|
-
"region": "us-east-1",
|
|
549
|
-
"clientConfig": {
|
|
550
|
-
"profile": "dev",
|
|
551
|
-
"maxAttempts": 3,
|
|
552
|
-
"credentials": {
|
|
553
|
-
"accessKeyId": "AKIA...",
|
|
554
|
-
"secretAccessKey": "...",
|
|
555
|
-
"sessionToken": "..."
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
],
|
|
562
|
-
"llms": [
|
|
563
|
-
{
|
|
564
|
-
"name": "Claude Sonnet",
|
|
565
|
-
"options": {
|
|
566
|
-
"provider": "bedrock-dev",
|
|
567
|
-
"model": "anthropic.claude-sonnet-4-20250514-v1:0",
|
|
568
|
-
"params": {
|
|
569
|
-
"temperature": 0.7,
|
|
570
|
-
"maxTokens": 1024
|
|
571
|
-
}
|
|
572
|
-
},
|
|
573
|
-
"default": true
|
|
574
|
-
}
|
|
575
|
-
]
|
|
576
|
-
}
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
You can also rely on the AWS default credential chain (recommended) by setting environment variables such as `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and optionally `AWS_SESSION_TOKEN`.
|
|
580
|
-
|
|
581
|
-
### Groq
|
|
582
|
-
|
|
583
|
-
### Anthropic
|
|
584
|
-
|
|
585
|
-
Uses Strands `AnthropicModel` on top of `@anthropic-ai/sdk`. Provider-specific settings `apiKey`/`authToken`, `baseURL`, `headers`, `clientConfig`, `betas`, and `useNativeTokenCount` are picked up directly. Standard model config such as `temperature`, `topP`, `maxTokens`, and `stopSequences` stays top-level. Any other keys are forwarded to the Anthropic Messages request body, which is useful for Anthropic-compatible providers such as MiniMax.
|
|
586
|
-
|
|
587
|
-
For MiniMax specifically:
|
|
588
|
-
|
|
589
|
-
- Use `baseURL: "https://api.minimax.io/anthropic"`.
|
|
590
|
-
- `MiniMax-M3` can emit visible thinking blocks when you set `thinking: { "type": "adaptive" }`.
|
|
591
|
-
- `MiniMax-M2.7` / `M2.5` / `M2.1` / `M2` do internal reasoning, but MiniMax’s Anthropic-compatible API does not expose those as `thinking` content blocks, so Hooman has nothing to render in the transcript.
|
|
592
|
-
|
|
593
|
-
```json
|
|
594
|
-
{
|
|
595
|
-
"provider": "anthropic",
|
|
596
|
-
"model": "MiniMax-M3",
|
|
597
|
-
"params": {
|
|
598
|
-
"apiKey": "...",
|
|
599
|
-
"baseURL": "https://api.minimax.io/anthropic",
|
|
600
|
-
"thinking": { "type": "adaptive" },
|
|
601
|
-
"temperature": 1
|
|
402
|
+
"name": "MiniMax",
|
|
403
|
+
"provider": "minimax",
|
|
404
|
+
"options": {
|
|
405
|
+
"apiKey": "..."
|
|
602
406
|
}
|
|
603
407
|
}
|
|
604
408
|
```
|
|
605
409
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
Uses the Vercel AI SDK Groq provider (`@ai-sdk/groq`) on top of Strands `VercelModel`. Provider-specific settings `apiKey`, `baseURL`, and `headers` are picked up; other values are forwarded into the model config (`temperature`, `maxTokens`, etc.). Defaults to `GROQ_API_KEY` from the environment when no `apiKey` is supplied.
|
|
410
|
+
LLM entries reference a provider by name and carry normalized model options:
|
|
609
411
|
|
|
610
412
|
```json
|
|
611
413
|
{
|
|
612
|
-
"
|
|
613
|
-
"
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"temperature":
|
|
617
|
-
|
|
414
|
+
"name": "MiniMax M3",
|
|
415
|
+
"provider": "MiniMax",
|
|
416
|
+
"options": {
|
|
417
|
+
"model": "MiniMax-M3",
|
|
418
|
+
"temperature": 1,
|
|
419
|
+
"maxTokens": 4096
|
|
420
|
+
},
|
|
421
|
+
"default": true
|
|
618
422
|
}
|
|
619
423
|
```
|
|
620
424
|
|
|
621
|
-
|
|
425
|
+
Supported provider option fields:
|
|
622
426
|
|
|
623
|
-
|
|
427
|
+
- `anthropic`: `apiKey`, optional `baseURL`, optional `headers`, optional `thinking`
|
|
428
|
+
- `azure`: optional `resourceName`, optional `baseURL`, optional `apiKey`, optional `headers`, optional `apiVersion`, optional `useDeploymentBasedUrls`
|
|
429
|
+
- `bedrock`: `region`, `accessKeyId`, `secretAccessKey`, optional `sessionToken`, optional `apiKey`
|
|
430
|
+
- `google`: `apiKey`
|
|
431
|
+
- `groq`: `apiKey`, optional `baseURL`, optional `headers`
|
|
432
|
+
- `minimax`: `apiKey`, optional `headers`, optional `thinking`
|
|
433
|
+
- `moonshot`: `apiKey`, optional `baseURL`, optional `headers`
|
|
434
|
+
- `ollama`: optional `baseURL`, optional `thinking`
|
|
435
|
+
- `openai`: `apiKey`, optional `baseURL`, optional `headers`
|
|
436
|
+
- `openrouter`: `apiKey`, optional `baseURL`, optional `headers`
|
|
437
|
+
- `xai`: `apiKey`, optional `baseURL`, optional `headers`
|
|
624
438
|
|
|
625
|
-
|
|
626
|
-
{
|
|
627
|
-
"provider": "moonshot",
|
|
628
|
-
"model": "kimi-k2.5",
|
|
629
|
-
"params": {
|
|
630
|
-
"apiKey": "...",
|
|
631
|
-
"temperature": 0.7
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
```
|
|
439
|
+
Normalized LLM option fields:
|
|
635
440
|
|
|
636
|
-
|
|
441
|
+
- `model`
|
|
442
|
+
- optional `temperature`
|
|
443
|
+
- optional `maxTokens`
|
|
637
444
|
|
|
638
|
-
|
|
445
|
+
Notes:
|
|
639
446
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
```
|
|
447
|
+
- Google maps normalized `maxTokens` to the SDK's `maxOutputTokens` internally.
|
|
448
|
+
- Azure uses the Vercel AI SDK `@ai-sdk/azure` provider. Set the LLM `model` to your Azure deployment name, not the raw OpenAI model id.
|
|
449
|
+
- Ollama maps normalized `temperature` into Ollama `options.temperature`.
|
|
450
|
+
- MiniMax uses the Anthropic-compatible endpoint `https://api.minimax.io/anthropic` automatically.
|
|
451
|
+
- Moonshot defaults `baseURL` to `https://api.moonshot.ai/v1` when it is omitted.
|
|
452
|
+
- OpenRouter defaults `baseURL` to `https://openrouter.ai/api/v1` when it is omitted, and model names are usually provider-qualified ids such as `anthropic/claude-3.5-sonnet`.
|
|
453
|
+
- Bedrock can rely on the AWS default credential chain when explicit credentials are not provided.
|
|
650
454
|
|
|
651
455
|
## MCP Configuration
|
|
652
456
|
|
|
@@ -788,6 +592,19 @@ Run typecheck:
|
|
|
788
592
|
npm run typecheck
|
|
789
593
|
```
|
|
790
594
|
|
|
595
|
+
Build the project:
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
npm run build
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
After making any code change, run both verification steps:
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
npm run typecheck
|
|
605
|
+
npm run build
|
|
606
|
+
```
|
|
607
|
+
|
|
791
608
|
## License
|
|
792
609
|
|
|
793
610
|
MIT. See `LICENSE`.
|
|
@@ -31,8 +31,8 @@ export function buildSessionConfigOptions(config, agent) {
|
|
|
31
31
|
description: (() => {
|
|
32
32
|
const resolved = config.resolveLlm(m.name);
|
|
33
33
|
return resolved
|
|
34
|
-
? `${m.
|
|
35
|
-
: `${m.
|
|
34
|
+
? `${m.provider} -> ${resolved.provider}/${resolved.llmOptions.model}`
|
|
35
|
+
: `${m.provider}/${m.options.model}`;
|
|
36
36
|
})(),
|
|
37
37
|
})),
|
|
38
38
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/acp/sessions/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAA6B,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAuB,CAAC;AAC9D,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEpD,MAAM,UAAU,yBAAyB,CACvC,MAA8B,EAC9B,KAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IACzE,OAAO;QACL;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,6BAA6B;YACjC,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,wFAAwF;YAC1F,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI;YACtC,OAAO,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC;SAC/B;QACD;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU,CAAC,IAAI;YAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,GAAG,EAAE;oBACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3C,OAAO,QAAQ;wBACb,CAAC,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/acp/sessions/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAA6B,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAuB,CAAC;AAC9D,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEpD,MAAM,UAAU,yBAAyB,CACvC,MAA8B,EAC9B,KAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IACzE,OAAO;QACL;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,6BAA6B;YACjC,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,wFAAwF;YAC1F,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI;YACtC,OAAO,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC;SAC/B;QACD;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU,CAAC,IAAI;YAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,GAAG,EAAE;oBACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3C,OAAO,QAAQ;wBACb,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,OAAO,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;wBACtE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzC,CAAC,CAAC,EAAE;aACL,CAAC,CAAC;SACJ;QACD;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACjD,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC3B,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;aAC9B;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,MAAqC,EACrC,KAAY;IAEZ,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,YAAY,CAAC,aAAa,CAAC;YAC/B,OAAO,EAAE,mDAAmD;SAC7D,CAAC,CAAC;IACL,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,KAAK,6BAA6B;QACjD,MAAM,CAAC,QAAQ,KAAK,sBAAsB;QAC1C,MAAM,CAAC,QAAQ,KAAK,qBAAqB,EACzC,CAAC;QACD,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,MAAM,CAAC,QAAQ,KAAK,6BAA6B,EAAE,CAAC;QACtD,cAAc,CAAC,KAAK,EAAE,KAAe,CAAC,CAAC;QACvC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,sBAAsB,EAAE,CAAC;QAC/C,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAC1C,CAAC;YACD,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;SACpE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB,EAAE,CAAC;QAC9C,cAAc,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-kind.js","sourceRoot":"","sources":["../../../src/acp/utils/tool-kind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAmB;IACjD,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAC/B,CAAC,YAAY,EAAE,MAAM,CAAC;IACtB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAC5B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-kind.js","sourceRoot":"","sources":["../../../src/acp/utils/tool-kind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAmB;IACjD,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAC/B,CAAC,YAAY,EAAE,MAAM,CAAC;IACtB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAC5B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,eAAe,EAAE,MAAM,CAAC;IACzB,CAAC,OAAO,EAAE,SAAS,CAAC;IACpB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,eAAe,EAAE,OAAO,CAAC;IAC1B,CAAC,cAAc,EAAE,OAAO,CAAC;IACzB,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,cAAc,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC;AAEH,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,IAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC/B,OAAO,GAAG,QAAQ,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -7,7 +7,7 @@ const KNOWN_TOOL_LOCATION_KEYS = new Map([
|
|
|
7
7
|
["list_directory", ["path"]],
|
|
8
8
|
["directory_tree", ["path"]],
|
|
9
9
|
["move_file", ["source", "destination"]],
|
|
10
|
-
["
|
|
10
|
+
["grep", ["path"]],
|
|
11
11
|
["get_file_info", ["path"]],
|
|
12
12
|
]);
|
|
13
13
|
/** ACP `locations` extracted only from known core filesystem tools. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-locations.js","sourceRoot":"","sources":["../../../src/acp/utils/tool-locations.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAA4B;IAClE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-locations.js","sourceRoot":"","sources":["../../../src/acp/utils/tool-locations.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAA4B;IAClE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,KAAc;IAEd,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/chat/app.js
CHANGED
|
@@ -227,9 +227,9 @@ function listModelsText(config) {
|
|
|
227
227
|
const marker = entry.name === current ? "*" : "-";
|
|
228
228
|
const resolved = config.resolveLlm(entry.name);
|
|
229
229
|
if (!resolved) {
|
|
230
|
-
return `${marker} ${entry.name} (${entry.
|
|
230
|
+
return `${marker} ${entry.name} (${entry.provider}/${entry.options.model})`;
|
|
231
231
|
}
|
|
232
|
-
return `${marker} ${entry.name} (${entry.
|
|
232
|
+
return `${marker} ${entry.name} (${entry.provider} -> ${resolved.provider}/${resolved.llmOptions.model})`;
|
|
233
233
|
});
|
|
234
234
|
return [
|
|
235
235
|
`Current model: ${current}`,
|
|
@@ -436,21 +436,6 @@ export function ChatApp({ agent, config, sessionId, manager, registry, approvals
|
|
|
436
436
|
const removeLine = useCallback((id) => {
|
|
437
437
|
setLines((prev) => prev.filter((line) => line.id !== id));
|
|
438
438
|
}, []);
|
|
439
|
-
const moveLineToEnd = useCallback((id) => {
|
|
440
|
-
setLines((prev) => {
|
|
441
|
-
const index = prev.findIndex((line) => line.id === id);
|
|
442
|
-
if (index === -1 || index === prev.length - 1) {
|
|
443
|
-
return prev;
|
|
444
|
-
}
|
|
445
|
-
const next = [...prev];
|
|
446
|
-
const [line] = next.splice(index, 1);
|
|
447
|
-
if (!line) {
|
|
448
|
-
return prev;
|
|
449
|
-
}
|
|
450
|
-
next.push(line);
|
|
451
|
-
return next;
|
|
452
|
-
});
|
|
453
|
-
}, []);
|
|
454
439
|
const replaceAssistantText = useCallback((text) => {
|
|
455
440
|
const id = assistantLineIdRef.current;
|
|
456
441
|
if (!id) {
|
|
@@ -579,8 +564,9 @@ export function ChatApp({ agent, config, sessionId, manager, registry, approvals
|
|
|
579
564
|
})),
|
|
580
565
|
});
|
|
581
566
|
try {
|
|
582
|
-
const
|
|
583
|
-
|
|
567
|
+
const resolved = config.llm;
|
|
568
|
+
const provider = await modelProviders[resolved.provider]();
|
|
569
|
+
agent.model = provider.create(resolved.providerOptions, resolved.llmOptions);
|
|
584
570
|
}
|
|
585
571
|
catch (error) {
|
|
586
572
|
config.update({
|