@prestyj/ai 5.27.0 → 5.28.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 CHANGED
@@ -40,10 +40,10 @@ Tool parameters are Zod schemas. Converted to JSON Schema at the provider bounda
40
40
 
41
41
  | Provider | Models | Notes |
42
42
  |---|---|---|
43
- | `anthropic` | Claude Fable 5.1, Opus 5.5, Opus 5, Sonnet 5, Haiku 4.5 | Extended thinking, prompt caching, server-side compaction |
43
+ | `anthropic` | Claude Fable 5.1, Opus 5.5, Opus 5, Sonnet 5.5, Sonnet 5, Haiku 4.5 | Extended thinking, prompt caching, server-side compaction |
44
44
  | `openai` | GPT-4.1, o3, o4-mini | Supports OAuth (codex endpoint) and API keys |
45
45
  | `glm` | GLM-5.3 | Z.AI platform, OpenAI-compatible |
46
- | `moonshot` | Kimi K3, Kimi K2.7 Code | Moonshot platform, OpenAI-compatible |
46
+ | `moonshot` | Kimi K3, Kimi K2.8 Preview, Kimi K2.7 Code | Moonshot platform, OpenAI-compatible |
47
47
 
48
48
  ---
49
49
 
package/dist/index.cjs CHANGED
@@ -1100,7 +1100,7 @@ function isAdaptiveThinkingModel(model) {
1100
1100
  function toAnthropicThinking(level, maxTokens, model) {
1101
1101
  if (isAdaptiveThinkingModel(model)) {
1102
1102
  let effort = level;
1103
- if (effort === "xhigh" && !/opus-5|opus-4-8|opus-4-7/.test(model)) {
1103
+ if (effort === "xhigh" && !/opus-5|opus-4[-.]8|opus-4[-.]7|sonnet-5[-.]5/.test(model)) {
1104
1104
  effort = "high";
1105
1105
  }
1106
1106
  return {
@@ -2103,7 +2103,7 @@ async function* runStream2(options) {
2103
2103
  const endpointKey = reasoningFieldKey(providerName, options.baseUrl, options.model);
2104
2104
  const client = createClient2(options);
2105
2105
  const isLocal = options.provider === "local";
2106
- const isKimiK3 = options.provider === "moonshot" && options.model === "kimi-k3";
2106
+ const isKimiK3 = options.provider === "moonshot" && (options.model === "kimi-k3" || options.model === "kimi-for-coding");
2107
2107
  const isManagedKimiK3 = isKimiK3 && options.baseUrl?.replace(/\/+$/, "").endsWith("/coding/v1") === true;
2108
2108
  const k3Effort = options.thinking ? toKimiK3Effort(options.thinking) : void 0;
2109
2109
  const isKimiK27 = options.provider === "moonshot" && options.model.startsWith("kimi-k2.7-code");
@@ -4204,7 +4204,7 @@ function isMediaObject(value) {
4204
4204
  function redactValue(value, options = {}) {
4205
4205
  const maxDepth = options.maxDepth ?? 20;
4206
4206
  const maxEntries = options.maxEntries ?? 1e4;
4207
- const seen = /* @__PURE__ */ new WeakSet();
4207
+ const ancestors = /* @__PURE__ */ new WeakSet();
4208
4208
  let entries = 0;
4209
4209
  const visit = (current, depth, sensitive = false) => {
4210
4210
  if (typeof current === "string") {
@@ -4218,8 +4218,15 @@ function redactValue(value, options = {}) {
4218
4218
  if (isBinary(current)) return current;
4219
4219
  if (current instanceof Date) return new Date(current.getTime());
4220
4220
  if (depth >= maxDepth) return TRUNCATED;
4221
- if (seen.has(current)) return CIRCULAR;
4222
- seen.add(current);
4221
+ if (ancestors.has(current)) return CIRCULAR;
4222
+ ancestors.add(current);
4223
+ try {
4224
+ return cloneObject(current, depth);
4225
+ } finally {
4226
+ ancestors.delete(current);
4227
+ }
4228
+ };
4229
+ const cloneObject = (current, depth) => {
4223
4230
  if (current instanceof Error) {
4224
4231
  const error = {
4225
4232
  name: current.name,