hoomanjs 1.25.0 → 1.26.1

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 CHANGED
@@ -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: `ollama`, `openai`, `anthropic`, `google`, `bedrock`, `groq`, `moonshot`, `xai`
33
+ - Multiple LLM providers: `ollama`, `openai`, `tensorzero`, `anthropic`, `google`, `bedrock`, `groq`, `moonshot`, `xai`
34
34
  - Local configuration under `~/.hooman`
35
35
  - Optional web search tool with provider selection (`brave`, `serper`, or `tavily`)
36
36
  - MCP server support via `stdio`, `streamable-http`, and `sse`
@@ -293,7 +293,7 @@ Important files and folders:
293
293
 
294
294
  ## Example `config.json`
295
295
 
296
- This is the config shape loaded by Hooman:
296
+ The canonical on-disk shape uses a **`llms`** array (non-empty): each item has `name`, `options` (`provider`, `model`, `params`), and `default`. The bundled **hooman-config** skill documents the full schema. The JSON below uses a single **`llm`** object only as a shorthand for the active profile’s `options` fields.
297
297
 
298
298
  ```json
299
299
  {
@@ -364,10 +364,11 @@ This is the config shape loaded by Hooman:
364
364
 
365
365
  Tool approvals are session-scoped and are not persisted in `config.json`.
366
366
 
367
- Supported `llm.provider` values:
367
+ Supported `llm.provider` values (in `config.json` these live under each `llms[].options.provider` entry):
368
368
 
369
369
  - `ollama`
370
370
  - `openai`
371
+ - `tensorzero`
371
372
  - `anthropic`
372
373
  - `google`
373
374
  - `bedrock`
@@ -397,6 +398,8 @@ Good default for local usage. Example:
397
398
 
398
399
  ### OpenAI
399
400
 
401
+ 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).
402
+
400
403
  Example:
401
404
 
402
405
  ```json
@@ -409,9 +412,30 @@ Example:
409
412
  }
410
413
  ```
411
414
 
415
+ 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.
416
+
417
+ ### TensorZero
418
+
419
+ Use for a [TensorZero](https://tensorzero.com) gateway’s **OpenAI-compatible** HTTP API (for example `/openai/v1`). Same general `params` shape as **OpenAI** (`apiKey`, `clientConfig.baseURL`, etc.), but implemented with **StrandsTensorZeroModel** so gateway-specific streaming works end-to-end: reasoning carried in `tensorzero_extra_content` shows as thinking in the chat UI, and usage metadata is normalized.
420
+
421
+ ```json
422
+ {
423
+ "provider": "tensorzero",
424
+ "model": "tensorzero::function_name::chat",
425
+ "params": {
426
+ "apiKey": "your-tensorzero-or-gateway-key",
427
+ "clientConfig": {
428
+ "baseURL": "http://localhost:3000/openai/v1"
429
+ }
430
+ }
431
+ }
432
+ ```
433
+
434
+ Use `tensorzero` when the backend is TensorZero; use `openai` for the official OpenAI API or generic Chat Completions proxies that do not need TensorZero’s extra stream fields.
435
+
412
436
  ### Anthropic
413
437
 
414
- Provider-specific settings such as `apiKey`, `authToken`, `baseURL`, and `headers` are supported. Other values are forwarded into the model config.
438
+ 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.
415
439
 
416
440
  ```json
417
441
  {
@@ -8,6 +8,7 @@ export declare enum LlmProvider {
8
8
  OpenAI = "openai",
9
9
  Ollama = "ollama",
10
10
  Bedrock = "bedrock",
11
+ TensorZero = "tensorzero",
11
12
  Xai = "xai"
12
13
  }
13
14
  declare const LlmSchema: z.ZodObject<{
@@ -10,6 +10,7 @@ export var LlmProvider;
10
10
  LlmProvider["OpenAI"] = "openai";
11
11
  LlmProvider["Ollama"] = "ollama";
12
12
  LlmProvider["Bedrock"] = "bedrock";
13
+ LlmProvider["TensorZero"] = "tensorzero";
13
14
  LlmProvider["Xai"] = "xai";
14
15
  })(LlmProvider || (LlmProvider = {}));
15
16
  const LlmSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gDAAgD;AAChD,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,0BAAW,CAAA;AACb,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,qFAAqF;IACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,4FAA4F;IAC5F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAE7D,MAAM,eAAe,GAAG;IACtB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;CACR,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,GAAG,EAAE,uBAAuB;IAC5B,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;CACxB,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,GAAG,EAAE,uBAAuB;IAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;CACpB,CAAC;AAEX,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACnC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACzC,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE;IACrC,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE;IACvC,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE;IACnC,UAAU,EAAE,uBAAuB,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,kBAAkB,CAAC,KAAK;QAC3C,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,kBAAkB,CAAC,IAAI;KACzC,CAAC,CAAC;CACJ,CAAC;KACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK;YACvC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,OAAO;YAC3C,KAAK,EAAE;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;aACpC;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;aACrC;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;aACrC;SACF;QACD,OAAO,EAAE;YACP,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,eAAe,CAAC,SAAS;YAChE,aAAa,EACX,KAAK,CAAC,OAAO,EAAE,aAAa,IAAI,eAAe,CAAC,aAAa;YAC/D,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,eAAe,CAAC,SAAS;YAChE,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,eAAe,CAAC,UAAU;SACpE;QACD,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI;aAC5C;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;aAC7C;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,IAAI,IAAI;aAClD;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;aAC7C;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;aAC7C;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,KAAK;gBAC9B,MAAM,EAAE;oBACN,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG;oBAC3C,UAAU,EAAE;wBACV,MAAM,EACJ,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;4BAC/B,cAAc,CAAC,UAAU,CAAC,MAAM;qBACnC;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;gBAC/B,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,GAAG;oBACjD,UAAU,EAAE;wBACV,IAAI,EACF,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI;4BAC9B,mBAAmB,CAAC,UAAU,CAAC,IAAI;qBACtC;iBACF;aACF;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;gBAC7C,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,IAAI,CAAC;aACnD;SACF;QACD,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC,CAAC,CAAC;AAYL,MAAM,iBAAiB,GAAG,GAAe,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,EAAE;aACX;YACD,OAAO,EAAE,IAAI;SACd;KACF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC7B,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9B;IACD,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;SACd;QACD,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;SACd;QACD,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;SACd;QACD,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;SACd;QACD,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;SACd;QACD,GAAG,EAAE;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,GAAG,EAAE,uBAAuB;gBAC5B,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;aACjC;SACF;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,GAAG,EAAE,uBAAuB;gBAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC7B;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,CAAC;SACf;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,MAAM;IACT,IAAI,CAAc;IACT,IAAI,CAAS;IAE9B,YAAmB,IAAY;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,GAAG;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;QAC1E,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,MAAM;QACR,OAAO;YACL,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACpC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;YAClB,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACjC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC7C,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,GAAG,EAAE;gBACH,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBACtB,MAAM,EAAE;oBACN,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;oBAC7B,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;iBACzD;aACF;YACD,IAAI,EAAE;gBACJ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBACvB,MAAM,EAAE;oBACN,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;oBAC9B,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;iBAC1D;aACF;YACD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,iBAAiB,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM;QACX,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,OAA4B;QACxC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
- import { VercelModel } from "@strands-agents/sdk/models/vercel";
1
+ import { AnthropicModel } from "@strands-agents/sdk/models/anthropic";
2
+ import type { AnthropicModelOptions } from "@strands-agents/sdk/models/anthropic";
3
+ /** Config JSON / provider params (`modelId` is set by {@link create}; no injected `client`). */
4
+ export type AnthropicModelParams = Omit<AnthropicModelOptions, "modelId" | "client">;
2
5
  /**
3
- * Anthropic via AI SDK + Strands {@link VercelModel}.
6
+ * Anthropic via Strands {@link AnthropicModel} (Messages API).
4
7
  *
5
- * - **`config.llm.model`**: model id passed to `anthropic(...)` (e.g. `claude-sonnet-4-20250514`).
6
- * - **`params`**: Settings {@link AnthropicProviderSettings} (`apiKey`, `authToken`, `baseURL`, ).
7
- * If none are set, the default provider is used (`ANTHROPIC_API_KEY` / `ANTHROPIC_AUTH_TOKEN` from env).
8
- * - Any other `params` keys are forwarded as {@link VercelModelConfig} (e.g. `temperature`, `maxTokens`).
8
+ * - **`config.llm.model`**: Claude model id (e.g. `claude-sonnet-4-20250514`).
9
+ * - **`params`**: `apiKey` or `authToken`, optional `baseURL` / `headers` (merged into `clientConfig`),
10
+ * optional `clientConfig`, plus model fields (`temperature`, `maxTokens`, `topP`, `stopSequences`, `params`, ).
11
+ * If no key is set, `ANTHROPIC_API_KEY` is used.
9
12
  */
10
- export declare function create(model: string, params?: Record<string, unknown>): VercelModel;
13
+ export declare function create(model: string, params?: Record<string, unknown>): AnthropicModel;
@@ -1,38 +1,79 @@
1
- import { anthropic, createAnthropic } from "@ai-sdk/anthropic";
2
- import { VercelModel } from "@strands-agents/sdk/models/vercel";
3
- import lodash from "lodash";
4
- const { omit, pick } = lodash;
5
- const PROVIDER_SETTINGS_KEYS = [
1
+ import { AnthropicModel } from "@strands-agents/sdk/models/anthropic";
2
+ const RESERVED = new Set([
6
3
  "apiKey",
7
4
  "authToken",
8
5
  "baseURL",
9
6
  "headers",
10
- ];
11
- function pickProviderSettings(params) {
12
- const picked = pick(params, [...PROVIDER_SETTINGS_KEYS]);
13
- const unset = Object.keys(picked).filter((k) => picked[k] === undefined);
14
- return omit(picked, unset);
7
+ "client",
8
+ "clientConfig",
9
+ ]);
10
+ function pickModelOptions(params) {
11
+ const out = {};
12
+ for (const [k, v] of Object.entries(params)) {
13
+ if (!RESERVED.has(k)) {
14
+ out[k] = v;
15
+ }
16
+ }
17
+ return out;
15
18
  }
16
- function pickVercelModelConfig(params) {
17
- return omit(params, [
18
- ...PROVIDER_SETTINGS_KEYS,
19
- ]);
19
+ function resolveApiKey(params) {
20
+ const k = params.apiKey;
21
+ const t = params.authToken;
22
+ if (typeof k === "string" && k.length > 0) {
23
+ return k;
24
+ }
25
+ if (typeof t === "string" && t.length > 0) {
26
+ return t;
27
+ }
28
+ return undefined;
29
+ }
30
+ function mergeClientConfig(params) {
31
+ const explicit = params.clientConfig;
32
+ const baseURL = typeof params.baseURL === "string" && params.baseURL.length > 0
33
+ ? params.baseURL
34
+ : undefined;
35
+ const headers = params.headers;
36
+ const defaultHeaders = headers &&
37
+ typeof headers === "object" &&
38
+ headers !== null &&
39
+ !Array.isArray(headers)
40
+ ? headers
41
+ : undefined;
42
+ if (!explicit && !baseURL && !defaultHeaders) {
43
+ return undefined;
44
+ }
45
+ return {
46
+ ...explicit,
47
+ ...(baseURL ? { baseURL } : {}),
48
+ ...(defaultHeaders
49
+ ? {
50
+ defaultHeaders: {
51
+ ...explicit?.defaultHeaders,
52
+ ...defaultHeaders,
53
+ },
54
+ }
55
+ : {}),
56
+ };
20
57
  }
21
58
  /**
22
- * Anthropic via AI SDK + Strands {@link VercelModel}.
59
+ * Anthropic via Strands {@link AnthropicModel} (Messages API).
23
60
  *
24
- * - **`config.llm.model`**: model id passed to `anthropic(...)` (e.g. `claude-sonnet-4-20250514`).
25
- * - **`params`**: Settings {@link AnthropicProviderSettings} (`apiKey`, `authToken`, `baseURL`, ).
26
- * If none are set, the default provider is used (`ANTHROPIC_API_KEY` / `ANTHROPIC_AUTH_TOKEN` from env).
27
- * - Any other `params` keys are forwarded as {@link VercelModelConfig} (e.g. `temperature`, `maxTokens`).
61
+ * - **`config.llm.model`**: Claude model id (e.g. `claude-sonnet-4-20250514`).
62
+ * - **`params`**: `apiKey` or `authToken`, optional `baseURL` / `headers` (merged into `clientConfig`),
63
+ * optional `clientConfig`, plus model fields (`temperature`, `maxTokens`, `topP`, `stopSequences`, `params`, ).
64
+ * If no key is set, `ANTHROPIC_API_KEY` is used.
28
65
  */
29
66
  export function create(model, params = {}) {
30
- const settings = pickProviderSettings(params);
31
- const provider = Object.keys(settings).length > 0 ? createAnthropic(settings) : anthropic;
32
- const config = pickVercelModelConfig(params);
33
- return new VercelModel({
34
- provider: provider(model),
35
- ...config,
67
+ const apiKey = resolveApiKey(params);
68
+ const clientConfig = mergeClientConfig(params);
69
+ const modelOpts = pickModelOptions(params);
70
+ return new AnthropicModel({
71
+ modelId: model,
72
+ ...(apiKey ? { apiKey } : {}),
73
+ ...(clientConfig && Object.keys(clientConfig).length > 0
74
+ ? { clientConfig }
75
+ : {}),
76
+ ...modelOpts,
36
77
  });
37
78
  }
38
79
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/models/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAE9B,MAAM,sBAAsB,GAAG;IAC7B,QAAQ;IACR,WAAW;IACX,SAAS;IACT,SAAS;CACD,CAAC;AAEX,SAAS,oBAAoB,CAC3B,MAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAGtD,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAA8B,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA+B;IAE/B,OAAO,IAAI,CAAC,MAAM,EAAE;QAClB,GAAG,sBAAsB;KAC1B,CAA+B,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,SAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,IAAI,WAAW,CAAC;QACrB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;QACzB,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/models/anthropic.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ export const modelProviders = {
5
5
  groq: () => import("./groq.js"),
6
6
  moonshot: () => import("./moonshot.js"),
7
7
  ollama: () => import("./ollama/index.js"),
8
- openai: () => import("./openai.js"),
8
+ openai: () => import("./openai/index.js"),
9
+ tensorzero: () => import("./tensorzero/index.js"),
9
10
  xai: () => import("./xai.js"),
10
11
  };
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/models/index.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,cAAc,GAAiD;IAC1E,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;IACrC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;IACvC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACzC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/models/index.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,cAAc,GAAiD;IAC1E,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;IACrC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;IACvC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACzC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACzC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IACjD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { OpenAIModel } from "@strands-agents/sdk/models/openai";
2
+ import type { OpenAIModelOptions } from "@strands-agents/sdk/models/openai";
3
+ /** Config JSON / provider params for chat OpenAI (`api` and `modelId` are set by {@link create}). */
4
+ export type OpenAIModelParams = Omit<OpenAIModelOptions, "api" | "modelId">;
5
+ export declare function create(model: string, params: Record<string, unknown>): OpenAIModel;
@@ -0,0 +1,37 @@
1
+ import { OpenAIModel } from "@strands-agents/sdk/models/openai";
2
+ import { splitUsageOntoEmptyChoicesChunk } from "./openai-stream-shims.js";
3
+ const STREAM_PATCH_KEY = Symbol.for("hooman.openaiChatCompletionsUsageStreamPatch");
4
+ function patchChatCompletionsStream(client) {
5
+ const marked = client;
6
+ if (marked[STREAM_PATCH_KEY]) {
7
+ return;
8
+ }
9
+ marked[STREAM_PATCH_KEY] = true;
10
+ const completions = client.chat.completions;
11
+ const originalCreate = completions.create.bind(completions);
12
+ completions.create = (async (body, options) => {
13
+ const result = await originalCreate(body, options);
14
+ if (body &&
15
+ typeof body === "object" &&
16
+ "stream" in body &&
17
+ body.stream === true) {
18
+ const asStream = result;
19
+ if (asStream != null &&
20
+ typeof asStream[Symbol.asyncIterator] === "function") {
21
+ return splitUsageOntoEmptyChoicesChunk(asStream);
22
+ }
23
+ }
24
+ return result;
25
+ });
26
+ }
27
+ export function create(model, params) {
28
+ const openaiModel = new OpenAIModel({
29
+ api: "chat",
30
+ modelId: model,
31
+ ...params,
32
+ });
33
+ const client = openaiModel._client;
34
+ patchChatCompletionsStream(client);
35
+ return openaiModel;
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/models/openai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAK3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CACjC,8CAA8C,CAC/C,CAAC;AAEF,SAAS,0BAA0B,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAqD,CAAC;IACrE,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEhC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5D,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,EACzB,IAA0C,EAC1C,OAA8C,EAC9C,EAAE;QACF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,IACE,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;YACxB,QAAQ,IAAI,IAAI;YAChB,IAAI,CAAC,MAAM,KAAK,IAAI,EACpB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAiB,CAAC;YACnC,IACE,QAAQ,IAAI,IAAI;gBAChB,OACE,QACD,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EACtC,CAAC;gBACD,OAAO,+BAA+B,CACpC,QAAsE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAyC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,MAA+B;IAE/B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,GAAG,EAAE,MAAM;QACX,OAAO,EAAE,KAAK;QACd,GAAI,MAA4B;KACjC,CAAC,CAAC;IACH,MAAM,MAAM,GAAI,WAA8C,CAAC,OAAO,CAAC;IACvE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type OpenAI from "openai";
2
+ /**
3
+ * Some OpenAI-compatible gateways (e.g. TensorZero) attach `usage` to the final chunk that
4
+ * still has non-empty `choices`. Strands' chat mapper only reads `usage` when `choices` is
5
+ * empty. Split so usage appears on an empty-choices chunk first.
6
+ */
7
+ export declare function splitUsageOntoEmptyChoicesChunk(stream: AsyncIterable<OpenAI.Chat.Completions.ChatCompletionChunk>): AsyncIterable<OpenAI.Chat.Completions.ChatCompletionChunk>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Some OpenAI-compatible gateways (e.g. TensorZero) attach `usage` to the final chunk that
3
+ * still has non-empty `choices`. Strands' chat mapper only reads `usage` when `choices` is
4
+ * empty. Split so usage appears on an empty-choices chunk first.
5
+ */
6
+ export async function* splitUsageOntoEmptyChoicesChunk(stream) {
7
+ for await (const chunk of stream) {
8
+ const usage = chunk.usage;
9
+ const choices = chunk.choices;
10
+ if (usage && choices && choices.length > 0) {
11
+ yield { ...chunk, choices: [] };
12
+ yield { ...chunk, usage: undefined };
13
+ }
14
+ else {
15
+ yield chunk;
16
+ }
17
+ }
18
+ }
19
+ //# sourceMappingURL=openai-stream-shims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-stream-shims.js","sourceRoot":"","sources":["../../../../src/core/models/openai/openai-stream-shims.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,+BAA+B,CACpD,MAAkE;IAElE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { OpenAIModelOptions } from "@strands-agents/sdk/models/openai";
2
+ import { StrandsTensorZeroModel } from "./strands-tensorzero.js";
3
+ export { StrandsTensorZeroModel } from "./strands-tensorzero.js";
4
+ export type TensorZeroModelConfig = Omit<OpenAIModelOptions, "api" | "modelId">;
5
+ /**
6
+ * Strands {@link Model} for a TensorZero gateway’s OpenAI-compatible HTTP API (`/openai/v1`).
7
+ * Handles gateway-specific streaming: token usage on the last chunk and `tensorzero_extra_content` thoughts.
8
+ */
9
+ export declare function create(model: string, params: Record<string, unknown>): StrandsTensorZeroModel;
@@ -0,0 +1,14 @@
1
+ import { StrandsTensorZeroModel } from "./strands-tensorzero.js";
2
+ export { StrandsTensorZeroModel } from "./strands-tensorzero.js";
3
+ /**
4
+ * Strands {@link Model} for a TensorZero gateway’s OpenAI-compatible HTTP API (`/openai/v1`).
5
+ * Handles gateway-specific streaming: token usage on the last chunk and `tensorzero_extra_content` thoughts.
6
+ */
7
+ export function create(model, params) {
8
+ return new StrandsTensorZeroModel({
9
+ api: "chat",
10
+ modelId: model,
11
+ ...params,
12
+ });
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/models/tensorzero/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE;;;GAGG;AACH,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,MAA+B;IAE/B,OAAO,IAAI,sBAAsB,CAAC;QAChC,GAAG,EAAE,MAAM;QACX,OAAO,EAAE,KAAK;QACd,GAAI,MAAgC;KACrC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Message } from "@strands-agents/sdk";
2
+ import type { StreamOptions } from "@strands-agents/sdk";
3
+ import type { ModelStreamEvent } from "@strands-agents/sdk";
4
+ import { OpenAIModel } from "@strands-agents/sdk/models/openai";
5
+ import type { OpenAIModelOptions } from "@strands-agents/sdk/models/openai";
6
+ /**
7
+ * {@link OpenAIModel} with TensorZero OpenAI-gateway streaming fixes:
8
+ * - usage on the final chunk with `choices` (see {@link splitUsageOntoEmptyChoicesChunk})
9
+ * - `delta.tensorzero_extra_content` thoughts → Strands `reasoningContentDelta` (Hooman “thinking” UI)
10
+ */
11
+ export declare class StrandsTensorZeroModel extends OpenAIModel {
12
+ constructor(options: OpenAIModelOptions);
13
+ stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelStreamEvent>;
14
+ }
@@ -0,0 +1,136 @@
1
+ import { dirname, join } from "node:path";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
3
+ import { OpenAIModel } from "@strands-agents/sdk/models/openai";
4
+ import { splitUsageOntoEmptyChoicesChunk } from "../openai/openai-stream-shims.js";
5
+ /** Strands 1.x moves chat helpers into `chat-adapter.js`, which is not a package export; load it next to the public `models/openai` entry. */
6
+ function openAiChatAdapterUrl() {
7
+ return pathToFileURL(join(dirname(fileURLToPath(import.meta.resolve("@strands-agents/sdk/models/openai"))), "chat-adapter.js")).href;
8
+ }
9
+ let chatAdapterPromise = null;
10
+ function loadOpenAiChatAdapter() {
11
+ chatAdapterPromise ??= import(openAiChatAdapterUrl());
12
+ return chatAdapterPromise;
13
+ }
14
+ function preludeEventsForTensorZeroDelta(delta, streamState) {
15
+ const out = [];
16
+ if (!delta) {
17
+ return out;
18
+ }
19
+ const toolCalls = delta.tool_calls;
20
+ if (Array.isArray(toolCalls) &&
21
+ toolCalls.length > 0 &&
22
+ streamState.reasoningContentBlockStarted) {
23
+ out.push({ type: "modelContentBlockStopEvent" });
24
+ streamState.reasoningContentBlockStarted = false;
25
+ }
26
+ const extra = delta.tensorzero_extra_content;
27
+ if (Array.isArray(extra)) {
28
+ for (const item of extra) {
29
+ if (!item || typeof item !== "object") {
30
+ continue;
31
+ }
32
+ const rec = item;
33
+ if (rec.type !== "thought") {
34
+ continue;
35
+ }
36
+ const text = rec.text;
37
+ if (typeof text !== "string" || text.length === 0) {
38
+ continue;
39
+ }
40
+ if (!streamState.reasoningContentBlockStarted) {
41
+ out.push({ type: "modelContentBlockStartEvent" });
42
+ streamState.reasoningContentBlockStarted = true;
43
+ }
44
+ out.push({
45
+ type: "modelContentBlockDeltaEvent",
46
+ delta: { type: "reasoningContentDelta", text },
47
+ });
48
+ }
49
+ }
50
+ const content = delta.content;
51
+ if (typeof content === "string" &&
52
+ content.length > 0 &&
53
+ streamState.reasoningContentBlockStarted) {
54
+ out.push({ type: "modelContentBlockStopEvent" });
55
+ streamState.reasoningContentBlockStarted = false;
56
+ }
57
+ return out;
58
+ }
59
+ function injectReasoningStopBeforeMessageStop(events, streamState) {
60
+ const out = [];
61
+ for (const e of events) {
62
+ if (e.type === "modelMessageStopEvent" &&
63
+ streamState.reasoningContentBlockStarted) {
64
+ out.push({ type: "modelContentBlockStopEvent" });
65
+ streamState.reasoningContentBlockStarted = false;
66
+ }
67
+ out.push(e);
68
+ }
69
+ return out;
70
+ }
71
+ /**
72
+ * {@link OpenAIModel} with TensorZero OpenAI-gateway streaming fixes:
73
+ * - usage on the final chunk with `choices` (see {@link splitUsageOntoEmptyChoicesChunk})
74
+ * - `delta.tensorzero_extra_content` thoughts → Strands `reasoningContentDelta` (Hooman “thinking” UI)
75
+ */
76
+ export class StrandsTensorZeroModel extends OpenAIModel {
77
+ constructor(options) {
78
+ if (options.api !== "chat") {
79
+ throw new Error(`TensorZero provider requires api: 'chat' (got '${String(options.api)}')`);
80
+ }
81
+ super(options);
82
+ }
83
+ async *stream(messages, options) {
84
+ if (!messages || messages.length === 0) {
85
+ throw new Error("At least one message is required");
86
+ }
87
+ const { formatChatRequest, mapChatChunkToEvents } = await loadOpenAiChatAdapter();
88
+ const client = this._client;
89
+ const rewrap = this._rewrapError;
90
+ try {
91
+ const request = formatChatRequest(this.getConfig(), messages, options);
92
+ const raw = await client.chat.completions.create(request);
93
+ const stream = splitUsageOntoEmptyChoicesChunk(raw);
94
+ const streamState = {
95
+ messageStarted: false,
96
+ textContentBlockStarted: false,
97
+ reasoningContentBlockStarted: false,
98
+ };
99
+ const activeToolCalls = new Map();
100
+ let bufferedUsage = null;
101
+ for await (const chunk of stream) {
102
+ if (!chunk.choices || chunk.choices.length === 0) {
103
+ if (chunk.usage) {
104
+ bufferedUsage = {
105
+ type: "modelMetadataEvent",
106
+ usage: {
107
+ inputTokens: chunk.usage.prompt_tokens ?? 0,
108
+ outputTokens: chunk.usage.completion_tokens ?? 0,
109
+ totalTokens: chunk.usage.total_tokens ?? 0,
110
+ },
111
+ };
112
+ }
113
+ continue;
114
+ }
115
+ const delta = chunk.choices[0]?.delta;
116
+ const prelude = preludeEventsForTensorZeroDelta(delta, streamState);
117
+ const base = mapChatChunkToEvents(chunk, streamState, activeToolCalls);
118
+ const events = injectReasoningStopBeforeMessageStop([...prelude, ...base], streamState);
119
+ for (const event of events) {
120
+ if (event.type === "modelMessageStopEvent" && bufferedUsage) {
121
+ yield bufferedUsage;
122
+ bufferedUsage = null;
123
+ }
124
+ yield event;
125
+ }
126
+ }
127
+ if (bufferedUsage) {
128
+ yield bufferedUsage;
129
+ }
130
+ }
131
+ catch (error) {
132
+ throw rewrap.call(this, error);
133
+ }
134
+ }
135
+ }
136
+ //# sourceMappingURL=strands-tensorzero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strands-tensorzero.js","sourceRoot":"","sources":["../../../../src/core/models/tensorzero/strands-tensorzero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMhE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAEnF,8IAA8I;AAC9I,SAAS,oBAAoB;IAC3B,OAAO,aAAa,CAClB,IAAI,CACF,OAAO,CACL,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,CACxE,EACD,iBAAiB,CAClB,CACF,CAAC,IAAI,CAAC;AACT,CAAC;AAED,IAAI,kBAAkB,GAWV,IAAI,CAAC;AAEjB,SAAS,qBAAqB;IAC5B,kBAAkB,KAAK,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACtD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAQD,SAAS,+BAA+B,CACtC,KAA0C,EAC1C,WAAkC;IAElC,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;IACnC,IACE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACxB,SAAS,CAAC,MAAM,GAAG,CAAC;QACpB,WAAW,CAAC,4BAA4B,EACxC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACjD,WAAW,CAAC,4BAA4B,GAAG,KAAK,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,wBAAwB,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAC;gBAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;gBAClD,WAAW,CAAC,4BAA4B,GAAG,IAAI,CAAC;YAClD,CAAC;YACD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,6BAA6B;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,WAAW,CAAC,4BAA4B,EACxC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACjD,WAAW,CAAC,4BAA4B,GAAG,KAAK,CAAC;IACnD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oCAAoC,CAC3C,MAA0B,EAC1B,WAAkC;IAElC,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IACE,CAAC,CAAC,IAAI,KAAK,uBAAuB;YAClC,WAAW,CAAC,4BAA4B,EACxC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACjD,WAAW,CAAC,4BAA4B,GAAG,KAAK,CAAC;QACnD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,OAA2B;QACrC,IAAI,OAAO,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,kDAAkD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAC1E,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAEQ,KAAK,CAAC,CAAC,MAAM,CACpB,QAAmB,EACnB,OAAuB;QAEvB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAC/C,MAAM,qBAAqB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAI,IAAuC,CAAC,OAAO,CAAC;QAChE,MAAM,MAAM,GACV,IACD,CAAC,YAAY,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAC/B,IAAI,CAAC,SAAS,EAAsB,EACpC,QAAQ,EACR,OAAO,CACR,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,+BAA+B,CAC5C,GAAiE,CAClE,CAAC;YAEF,MAAM,WAAW,GAA0B;gBACzC,cAAc,EAAE,KAAK;gBACrB,uBAAuB,EAAE,KAAK;gBAC9B,4BAA4B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;YACnD,IAAI,aAAa,GAON,IAAI,CAAC;YAEhB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAChB,aAAa,GAAG;4BACd,IAAI,EAAE,oBAAoB;4BAC1B,KAAK,EAAE;gCACL,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC;gCAC3C,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC;gCAChD,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;6BAC3C;yBACF,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAEnB,CAAC;gBACd,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,oCAAoC,CACjD,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,EACrB,WAAW,CACZ,CAAC;gBAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,aAAa,EAAE,CAAC;wBAC5D,MAAM,aAAa,CAAC;wBACpB,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,aAAa,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
@@ -136,6 +136,7 @@ Runtime APIs may still expose a single active profile as `llm` (derived from the
136
136
  "groq",
137
137
  "moonshot",
138
138
  "openai",
139
+ "tensorzero",
139
140
  "ollama",
140
141
  "bedrock",
141
142
  "xai"
@@ -166,12 +167,13 @@ Common shape (single default model):
166
167
 
167
168
  Provider notes (these refer to fields inside `options.params` unless noted):
168
169
 
169
- - `anthropic`: `params.apiKey`, `authToken`, `baseURL`, and `headers` configure the provider. Other keys are forwarded as Vercel model config, such as `temperature` and `maxTokens`.
170
+ - `anthropic`: Strands **AnthropicModel** (Anthropic Messages API via `@anthropic-ai/sdk`). `params.apiKey` or `params.authToken`, optional `baseURL` and `headers` (merged into `clientConfig`), optional `clientConfig`, plus model fields such as `temperature`, `maxTokens`, `topP`, `stopSequences`, and `params`. A custom `client` instance is not supported from config. If no key is set, `ANTHROPIC_API_KEY` is used.
170
171
  - `google`: `params.apiKey`, `client`, `clientConfig`, and `builtInTools` are top-level Google model options. Other keys become Gemini generation params, such as `temperature`, `maxOutputTokens`, `topP`, and `topK`.
171
172
  - `groq`: `params.apiKey`, `baseURL`, and `headers` configure the provider. Other keys are forwarded as Vercel model config.
172
173
  - `moonshot`: `params.apiKey`, `baseURL`, `headers`, and `fetch` configure the provider. Other keys are forwarded as Vercel model config.
173
174
  - `xai`: `params.apiKey`, `baseURL`, and `headers` configure the provider. Other keys are forwarded as Vercel model config.
174
- - `openai`: `params.apiKey` is passed to the OpenAI model wrapper; `model` becomes `modelId`.
175
+ - `openai`: Strands **OpenAIModel** (Chat Completions). `params.apiKey` (or env `OPENAI_API_KEY`), optional `clientConfig` (e.g. `baseURL` for an OpenAI-compatible HTTP API). `model` becomes `modelId`. Streaming usage from some gateways is normalized automatically. For a **TensorZero** gateway, prefer **`tensorzero`** if you want reasoning/thinking streamed into the UI and consistent usage metadata.
176
+ - `tensorzero`: Same Chat Completions shape as `openai`, but **`StrandsTensorZeroModel`** — use for a [TensorZero](https://tensorzero.com) gateway’s OpenAI-compatible route (e.g. `clientConfig.baseURL` like `http://localhost:3000/openai/v1`). Maps gateway `tensorzero_extra_content` thoughts to Strands reasoning deltas and normalizes final-chunk usage. `model` is typically `tensorzero::function_name::<name>` (or other TensorZero model id strings the gateway accepts).
175
177
  - `ollama`: `params.host`, `keepAlive`, `options`, and `think` configure the Ollama wrapper. `think` may be `true`, `false`, `"high"`, `"medium"`, or `"low"`.
176
178
  - `bedrock`: `params.region`, `clientConfig`, and optional `apiKey` configure Bedrock access. Put AWS credentials under `params.clientConfig.credentials` with `accessKeyId`, `secretAccessKey`, and optional `sessionToken`; put an AWS CLI/shared-config profile name in `params.clientConfig.profile`. If credentials and profile are omitted, Bedrock uses the AWS SDK default credential chain, including environment variables and AWS CLI/shared credentials. Other keys are forwarded as Bedrock model options, such as `temperature`, `maxTokens`, `stream`, and `cacheConfig`.
177
179
 
package/dist/index.d.ts CHANGED
@@ -26,16 +26,18 @@ export { Skills as SkillsPrompt, System as SystemPrompt, skills as createSkillsP
26
26
  export type { SystemMode } from "./core/prompts/system.js";
27
27
  export { modelProviders } from "./core/models/index.js";
28
28
  export type { ModelProvider } from "./core/models/index.js";
29
- export { create as createAnthropicModelProvider } from "./core/models/anthropic.js";
29
+ export { create as createAnthropicModelProvider, type AnthropicModelParams, } from "./core/models/anthropic.js";
30
30
  export { create as createBedrockModelProvider } from "./core/models/bedrock.js";
31
31
  export type { BedrockLlmParams } from "./core/models/bedrock.js";
32
32
  export { create as createGoogleModelProvider } from "./core/models/google.js";
33
33
  export { create as createGroqModelProvider } from "./core/models/groq.js";
34
34
  export { create as createMoonshotModelProvider } from "./core/models/moonshot.js";
35
35
  export { create as createOllamaModelProvider } from "./core/models/ollama/index.js";
36
- export { create as createOpenAIModelProvider } from "./core/models/openai.js";
36
+ export { create as createOpenAIModelProvider, type OpenAIModelParams, } from "./core/models/openai/index.js";
37
+ export { create as createTensorZeroModelProvider } from "./core/models/tensorzero/index.js";
37
38
  export { create as createXaiModelProvider } from "./core/models/xai.js";
38
39
  export { StrandsOllamaModel, type OllamaModelConfig, } from "./core/models/ollama/strands-ollama.js";
40
+ export { StrandsTensorZeroModel, type TensorZeroModelConfig, } from "./core/models/tensorzero/index.js";
39
41
  export { LongTermMemoryStore, createLongTermMemoryStore, createLongTermMemoryTools, createShortTermMemory, } from "./core/memory/index.js";
40
42
  export type { ArchiveMemoryInput, LongTermMemoryOptions, LongTermMemoryScope, MemorySource, SearchMemoryInput, SearchMemoryResult, StoreMemoryInput, StoreMemoryResult, UpdateMemoryInput, } from "./core/memory/index.js";
41
43
  export { LazySessionManager } from "./core/memory/stm/lazy-session-manager.js";
package/dist/index.js CHANGED
@@ -19,15 +19,17 @@ export { Registry as SkillsRegistry, createSkillsRegistry, } from "./core/skills
19
19
  export { parseSkillFrontmatter } from "./core/skills/metadata.js";
20
20
  export { Skills as SkillsPrompt, System as SystemPrompt, skills as createSkillsPrompt, system as createSystemPrompt, } from "./core/prompts/index.js";
21
21
  export { modelProviders } from "./core/models/index.js";
22
- export { create as createAnthropicModelProvider } from "./core/models/anthropic.js";
22
+ export { create as createAnthropicModelProvider, } from "./core/models/anthropic.js";
23
23
  export { create as createBedrockModelProvider } from "./core/models/bedrock.js";
24
24
  export { create as createGoogleModelProvider } from "./core/models/google.js";
25
25
  export { create as createGroqModelProvider } from "./core/models/groq.js";
26
26
  export { create as createMoonshotModelProvider } from "./core/models/moonshot.js";
27
27
  export { create as createOllamaModelProvider } from "./core/models/ollama/index.js";
28
- export { create as createOpenAIModelProvider } from "./core/models/openai.js";
28
+ export { create as createOpenAIModelProvider, } from "./core/models/openai/index.js";
29
+ export { create as createTensorZeroModelProvider } from "./core/models/tensorzero/index.js";
29
30
  export { create as createXaiModelProvider } from "./core/models/xai.js";
30
31
  export { StrandsOllamaModel, } from "./core/models/ollama/strands-ollama.js";
32
+ export { StrandsTensorZeroModel, } from "./core/models/tensorzero/index.js";
31
33
  export { LongTermMemoryStore, createLongTermMemoryStore, createLongTermMemoryTools, createShortTermMemory, } from "./core/memory/index.js";
32
34
  export { LazySessionManager } from "./core/memory/stm/lazy-session-manager.js";
33
35
  export { FlatFileStorage } from "./core/memory/stm/flat-file-storage.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hoomanjs",
3
- "version": "1.25.0",
3
+ "version": "1.26.1",
4
4
  "description": "Hackable AI agent toolkit for building local CLI, ACP, MCP, and channel-driven workflows.",
5
5
  "author": {
6
6
  "name": "Vaibhav Pandey",
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "@agentclientprotocol/sdk": "^0.18.2",
73
- "@ai-sdk/anthropic": "^3.0.69",
73
+ "@anthropic-ai/sdk": "^0.89.0",
74
74
  "@ai-sdk/groq": "^3.0.35",
75
75
  "@ai-sdk/moonshotai": "^2.0.16",
76
76
  "@ai-sdk/xai": "^3.0.83",
@@ -79,7 +79,7 @@
79
79
  "@huggingface/transformers": "^4.0.1",
80
80
  "@modelcontextprotocol/sdk": "^1.29.0",
81
81
  "@mozilla/readability": "^0.6.0",
82
- "@strands-agents/sdk": "^1.0.0-rc.3",
82
+ "@strands-agents/sdk": "^1.0.0",
83
83
  "@tavily/core": "^0.7.2",
84
84
  "chromadb": "^3.4.3",
85
85
  "cli-highlight": "^2.1.11",
@@ -1,4 +0,0 @@
1
- import { OpenAIModel } from "@strands-agents/sdk/models/openai";
2
- export declare function create(model: string, params: {
3
- apiKey?: string;
4
- }): OpenAIModel;
@@ -1,9 +0,0 @@
1
- import { OpenAIModel } from "@strands-agents/sdk/models/openai";
2
- export function create(model, params) {
3
- return new OpenAIModel({
4
- api: "chat",
5
- modelId: model,
6
- ...params,
7
- });
8
- }
9
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/core/models/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,MAA2B;IAE3B,OAAO,IAAI,WAAW,CAAC;QACrB,GAAG,EAAE,MAAM;QACX,OAAO,EAAE,KAAK;QACd,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC"}